• PHP文件相关的操作函数——文件操作


    1.文件的代开与关闭

      1.1 fopen()

        作用:该函数用于打开一个文件

        具体使用访问:http://www.w3school.com.cn/php/func_filesystem_fopen.asp

      1.2 fclose()

        该函数会撤销fopen()打开的资源类型,成功时返回TRUE,否则返回FALSE。参数必须使用fopen()或fsockopen()函数打开的已存的文件指针。在目录操作中opendir()函数也是开启一个资源,使用closedir()将其关闭。

        具体使用访问:http://www.w3school.com.cn/php/func_filesystem_fclose.asp

    2.写入文件

      2.1 fwrite()

        具体访问:http://www.w3school.com.cn/php/func_filesystem_fwrite.asp

    3.读取文件内容

      2.1 fread()

        作用:该函数用来在打开的文件中读取指定长度的字符串。也可以安全用于二进制文件,在区分二进制文件和文本文件的系统上(如Windows)打开文件时,fopen()函数的mode参数要加上'b'.

        语法:string fread(int handle,int length)

        参数:该函数从文件指针资源handle中读取最多length个字节。在读取完length个字节数,或到达EOF时,或(对于网络流)当一个包可用时都会停止读取文件,就看先碰到哪种情况了。该函数返回读取的内容字符串,如果失败则返回FALSE。

        代码示例:

          $filename = "C:UserslenovoDesktop/test.txt";
          $handle = fopen($filename,"r") or die("文件打开失败");
          $contents = fread($handle,4);
          fclose($handle);
          echo $contents;

      2.2 file_get_contents()

        作用:用来将文件的内容读入到一个字符串中的首选方法,如果只想将一个文件的内容读入到一个字符串中,可以用该函数,它的性能比2.1例子中的代码好得多。如果操作系统支持,还会使用内存映射技术来增强性能。示例代码如下:

          echo file_get_contents("C:UserslenovoDesktop/test.txt");  //读取文本文件中的内容并输出

          echo file_get_contents("C:\files\somepic.gif");        //读取二进制文件中的内容并输出

      2.3 fgets()

        作用:该函数一次至多从打开的文件资源中读取一行内容。

        语法:string fgets(ing handle[,int length])

        参数:第一个参数提供使用fopen()函数打开的资源。如果提供了第二个可选参数length,该函数返回length-1个字节。或者返回遇到换行或EOF之前读取的所有内容。如果忽略可选的length参数,默认为1024个字符。在大多数情况下,这意味着fgets()函数将读取到1024个字符前遇到换行符,因此每次成功调用都会返回下一行。如果读取失败则返回FALSE。

        代码示例:

        $handle = fopen("data.txt","r") or die("文件打开失败");    //以只读模式打开文件

        while(!feof($handle))                    //循环读取第一行

        {    

          $buffer = fgets($handle,4096);            //一次读取一行内容

          echo $buffer."<br>";                 //输出每一行

        }

      2.4 fgetc()

        作用:在打开的文件资源中读取当前指针位置处的一个字符。如果遇到文件结束表示EOF,将返回FALSE值。示例代码如下:

          $fp = fopen("data.txt","r") or die("文件打开失败");    //以只读模式打开文件

          while(false !== ($char = fgetc($fp)))         //在文件中每次循环读取一个字符

          {

            echo $char."<br>";              //输出单个字符

          }

      2.5 file()

        该函数非常有用,与file_get_contents()类似,不需要使用fopen()函数打开文件,不同的是file()函数可以把整个文件读入到一个数组中。数组中的每个元素对应文件中相应的行,各元素由换行符分隔,同时换行符仍附加在每个元素的末尾。这样,就可以使用数组的相关函数对文件内容进行处理。代码示例如下:

        print_r(file("test.txt"));    //将文件test.txt中的内容读入到一个数组中,并输出

      2.6 readfile()

        该函数可以读取指定的整个文件,立即输出到输出缓冲区,并返回读取的字节数。该函数也不需要使用fopen()函数打开文件。在下面的示例中,轻松地将文件内容输出到浏览器。

        readfile("data.txt");    //直接将文件data.txt中的数据读出并输出到浏览器

    3 访问远程文件

      使用PHP不仅可以让用户通过浏览器访问服务器端的文件,还可以通过HTTP或FTP等协议访问其他服务器中的文件,可以在大多数需要用文件名作为参数的函数中使用HTTP和FTP URL来代替文件名。使用fopen()函数将制定的文件名与资源绑定到一个流上,如果文件名是"scheme://..."的格式,则被当成一个URL,PHP将搜索协议器(也被称为封装协议)来处理此模式。

      如果需要访问远程文件,必须在PHP的配置文件中激活“allow_url_fopen”选项,才能使用fopen()函数打开远程文件。而且还要确定其他服务器中的文件是否有访问权限,如果使用HTTP协议对远程文件进行连接,只能以“只读”模式打开。如果需要访问的远程FTP服务器中,对所提供的用户开启了“可写”权限,则使用FTP协议连接远程的文件时,就可以使用“只写”或“只读”模式打开文件。但不可以使用“可读可写”的模式。

      使用PHP访问远程文件就像访问本地文件一样,都是使用相同的读写函数处理。代码示例如下:

      $file = fopen("http://www.lampbrother.com/","r") or die("打开远程文件失败!");

      while(!feof($file))

      {

        $line = fgets($file,1024);      //每读取一行

        if(preg_match("/<title>(.*)</title>/",$line,$out))       //如果找到远程文件中的标题标记则取出标题,并退出循环,不在读取文件

        {

          $title = $out[1];

          break;

        }

      }

      fclose($file);      //关闭文件资源

      echo $title;      //输出获取到的远程网页的标题

  • 相关阅读:
    [姿势] 关于Ubuntu16.04安装前后
    [题解] poj 1716 Integer Intervals (差分约束+spfa)
    [题解] hdu 2433 Travel (BFS)
    [题解] poj 3169 Layout (差分约束+bellmanford)
    [题解] poj 3660 Cow Contest (floyd)
    [题解] hdu 1142 A Walk Through the Forest (dijkstra最短路 + 记忆化搜索)
    [题解] poj 1724 ROADS (dijkstra最短路+A*搜索)
    [BZOJ1491][NOI2007]社交网络 floyd
    [BZOJ2064]分裂 状压dp
    [BZOJ3585]mex 主席树
  • 原文地址:https://www.cnblogs.com/xuying/p/4676636.html
Copyright © 2020-2023  润新知