16080891(Lamp→研讨会)

读取数据

上一篇 / 下一篇  2007-05-10 20:02:12 / 个人分类:PHP学习笔记

  一.读取一行数据

    声明: fgets(int handle[,int length])

   其中handle参数是被打开的要读取数据的句柄,而length参数表示要读取的数据长度.该函数的作用是从handle指向的文件中读取一行并返回长度最多为length-1字节的字符串.遇到换行符(包括在返回值)、EOF或者已经读取了length-1字节后停止.如果没有指定length,则默认为1KB.出错时返回False.

例:
   <?php
      $handle = fopen("文件名","打开方式");
      while (!feof($handle))//feof():判断是否到了文件最后.
       {
           $buffer =fgets($handle,1024);//1024为读取数据的长度
           echo $buffer."<br>";
       }
      fclose($handle);
   ?>

 二.fgetss():fgets()函数的一个变体.其功能同fgets()函数基本类似.只是fgetess()函数会过滤掉被读取内容中的HTMLPHP标记.
    声明: fgetss(resource handle,int length[,string allowable_tagle])

    fgetss函数和fgets函数相同,只除了fgetss尝试从读取的文本中去掉任何HTML和PHP标记,可以用可选的第三个参数指定哪些标记不被去掉.当读取其他人写的文件的时候,可以设置过滤一些恶意代码.因为一些恶意的HTMLT和PHP代码,可以很容易控制服务器.

 三.fgetcsv():该函数也是fgets()函数的一个变体.该函数从文件指针中读入一行并解析CVS字段.
 
  声明 fgetcsv(int handle,int length[,string delimiter[,string enclosure]])

  和fgets()类似,只除了fgetcsv()解析读入的行并找出CVS格式的字段然后返回一个包含这些字段的数组.可选的第三个参数delimiter的默认值是逗号,可选enclosure的默认值是双引号.delimiter和enclosure都被限制为一个字符.如果多于一个字符,则只使用第一个字符,length必须大于CVS文件中长度最大的行(以便于处理行结束字符).fgetcsv()出错时返回False,包括碰到文件结束时.

 提示: CVS文件中的空行将返回为一个包含有单个NULL字段的数组,而不会被当成错误.

 四.读取整个文件
  1.radfile():读入一个文件并写入到输出缓冲.该函数返回从文件中读入的字节数.如果出错返回FALSE,并且除非以@readfile形式调用,否则会显示错误.
 
    声明: readfile(string filename[,bool use_include_path[,resource context]])

  2.fpassthru():输出文件指针处的所有剩余数据.
  
    声明: fpassthru(resource handle)
   
    该函数将给定的文件指针从当前的位置读取到EOF并把结果写到输出缓冲区.如果发生错误,fpassthru()返回False,否则fpassthru()返回从handle读取并传递到输出的字符数目.
    如果既不修改文件也不在特定位置检索,只想将文件的内容下载到输出缓冲区,应该使用readfile(),这样可以省去fopen调用.

  提示: 当在Windows系统中将fpssthru()用于二进制文件时,要确保在用fopen()打开文件时在mode中加"b"选项来将文件以二进制方式打开.建议在处理二进制文件时使用"b"标志,这样可以使脚本移植性更好.

  同readfile相比,fpssthru需要首先打开文件,数据读取完毕还需要关闭文件.另外fpssthru函数是读取当前指针之后的所有数据.假如当前指针已经在文件中间,则只是输出所有后面的数据.

  3.file():该函数也是读取整个文件的内容,但是该函数会把整个文件读入一个数组中.
   
    声明: file(string filename[,int use_include_path[,resource context]])

    和readfile()一样,只是file()将文件作为一个数组返回.数组中的每个单元都是文件中相应的一行,包括换行符在内.如果失败,file()返回False,如果想在include_path中搜对文件,可以将可选参数use_include_path设为"1".

  提示: 返回的数组中每一行都包括了行结束符,因此,如果不需要行结束符,可以使用trim()函数.

 4.file_get_contents():将整个文件作为一个字符串读入.
  
   声明: file_get_contents(string filename[,int use_include_path[,resource context]])

   该函数是将文件的内容读入到一个字符串中的首选方法.将在参数offset所指定的位置开始读取长度为maxlen的内容.如果失败,file_get_contents()将返回False.如果操作系统支持还会使用内存映射技术来增强性能.除了file_get_contents()将文件返回为一个字符串以外,其余与file()的使用一样.

TAG: PHP学习笔记

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar