zoukankan      html  css  js  c++  java
  • PHP文件操作

    PHP文件操作

    计应134   凌豪

    1.打开文件

      在PHP中使用fopen()函数打开文件,fopen()函数的语法如下:

    resource fopen ( string filename, string mode [, bool use_include_path]);

    filename是要打开的包含路径的文件名,可以是相对路径,也可以是绝对路径。如果没有任何前缀则表示打开的是本地文件
    mode是打开文件的方式,use_include_path是可选的,该参数在配置文件php.ini中指定一个路径,如F:AppServ wwwmess.php,如果希望服务器在这个路径下打开所指定的文件,可以设置为1或 true。
    2.关闭文件

       对文件的操作结束后应该关闭这个文件,否则可能引起错误。在PHP中使用fclose()函数关闭文件,该函数的语法如下:

    bool fclose ( resource handle ) ;

      该函数将参数handle指向的文件关闭,如果成功,返回true,否则返回false

    3.读写文件

    •1.从文件中读取数据
    1)读取整个文件:readfile()、file()和file_get_contents()

    1)readfile()函数

           readfile()函数用于读入一个文件并将其写入到输出缓冲,如果出现错误则

    返回false。函数语法    如下:

    int readfile(string filename)

    (2)file()函数

            file()函数也可以读取整个文件的内容,只是file()函数将文件内容按行存

    放到数组中,包括换行符在内。如果失败则返回false。函数语法如下:

    array file(string filename)

    (3)file_get_contents()函数

          该函数将文件内容(filename)读入一个字符串。如果有offset和maxlen参数,将在参数offset所指定的位置开始读取长度为maxlen的内容。如果失败,返回false。函数语法如下

    string file_get_contents(string filename[,int offset[,int maxlen]])

    下面的实例分别是使用readfile()函数、file()函数和file_get_contents()函数分别读取tm.txt,代码如下:
    <body>
    <table border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td width="250" height="25" align="right" valign="middle" scope="col">使用readfile()函数读取文件内容:</td>
        <td height="25" align="center" valign="middle" scope="col">
        <?php readfile('tm.txt'); ?>    </td>
      </tr>
      <tr>
        <td height="25" align="right" valign="middle">使用file()函数读取文件内容:</td>
        <td height="25" align="center" valign="middle">
        <?php
            $f_arr = file('tm.txt');
            foreach($f_arr as $cont){
                echo $cont."<br>";
            }
        ?></td>
      </tr>
      <tr>
          <td width="250" height="25" align="right" valign="middle" scope="col">使用file_get_contents()函数读取文件内容:</td>
        <td height="25" align="center" valign="middle" scope="col">
        <?php
        
            $f_chr = file_get_contents('tm.txt');
            echo $f_chr;
        ?></td>
      </tr>
    </table>
    </body>
    </html>

    3)读取一个字符:fgetc()

        在对某一个字符进行查找、替换时,需要有针对性地对某个字符进行读取,在PHP中可以使用fgetc()函数实现此功能。函数语法如下:

    string fgetc ( resource handle )

    4)读取任意长度的字串:fread()

         fread()可以从文件中读取指定长度的数据,函数语法如下:

    string fread ( int handle, int length )

    •2.将数据写入文件

       写入数据也是PHP中常用的文件操作,在PHP中使用fwrite()和file_put_contents()函数向文件中写入数据。fwrite()函数也称为fputs(),它们的用法相同。fwrite()函数的语法如下:

    int fwrite ( resource handle, string string [, int length] )

    下面首先使用fwrite()函数想0.5.text文件写入数据,再使用file_put_contents()函数写入数据,其代码如下:

    <?php
        $filepath = "05.txt";
        $str = "此情可待成追忆    只是当时已惘然<br>";
        echo "用fwrite函数写入文件:";
        $fopen = fopen($filepath,'wb') or die('文件不存在');
        fwrite($fopen,$str);
        fclose($fopen);
        readfile($filepath);
        echo "<p>用file_put_contents函数写入文件:";
        file_put_contents($filepath,$str);
        readfile($filepath);
    ?>

    4.文件的上传

        要想顺利地实现上传功能,首先要在php.ini中开启文件上传,并对其中的一些参数作出合理的设置。找到File Uploads项,可以看到下面有3个属值,file_uploads:如果值是on,说明服务器支持文件上传;如果为off,则不支持。upload_tmp_dir:上传文件临时目录。在文件被成功上传之前,文件首先存放到服务器端的临时目录中。如果想要指定位置,可在这里设置。否则使用系统默认目录即可。upload_max_filesize:服务器允许上传的文件的最大值,以MB为单位。系统默认为2MB,用户可以自行设置。除了File Uploads项,还有几个属性也会影响到上传文件的功能。max_execution_time:PHP中一个指令所能执行的最大时间,单位是秒。memory_limit:PHP中一个指令所分配的内存空间,单位是MB。

       下面是一个上传案例,其中允许上传大小为1MB以下的文件,其代码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>单文件上传</title>
    <style type="text/css">
    <!--
    body,td,th {
        font-size: 12px;
    }
    body {
        margin-left: 10px;
        margin-top: 10px;
        margin-right: 10px;
        margin-bottom: 10px;
    }
    -->
    </style></head>
    <body>
    <?php
        if(!empty($_FILES[up_file][name])){
        $fileinfo = $_FILES[up_file];
            if($fileinfo['size'] < 1000000 && $fileinfo['size'] > 0){
                move_uploaded_file($fileinfo['tmp_name'],$fileinfo['name']);
                echo '上传成功';
            }else{
                echo '文件太大或未知';
            }
        }
    ?>
    <table width="385" height="185" border="0" cellpadding="0" cellspacing="0" background="images/bg.JPG">
      <tr>
        <td width="142" height="80">&nbsp;</td>
        <td width="174">&nbsp;</td>
        <td width="69">&nbsp;</td>
      </tr>
    <form action="" method="post" enctype="multipart/form-data" name="form">
      <tr>
        <td height="30">&nbsp;</td>
        <td align="left" valign="middle"><input name="up_file" type="file" size="12" /></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td height="27" align="right">&nbsp;</td>
        <td align="center" valign="top">&nbsp;&nbsp;<input type="image" name="imageField" src="images/fg.bmp"></td>
        <td>&nbsp;</td>
      </tr>
      </form>
      <tr>
        <td height="48">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>

  • 相关阅读:
    41. 缺失的第一个正数
    101. 对称二叉树 38. 外观数列
    leecode 394. 字符串解码 java版本
    敏感词过滤(java)
    vue项目中async、await+promise来将异步转为同步
    vue项目目录详解及自定义事件
    如何搭建vue项目
    Sublime Text 3 离线安装插件
    拿到别人的vue项目如何跑起来?
    js设置定时器和清除定时器
  • 原文地址:https://www.cnblogs.com/linghao713/p/4911151.html
Copyright © 2011-2022 走看看