加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_韶关站长网 (https://www.0751zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

(进阶篇)PHP文件读写操作相关函数总结

发布时间:2022-09-12 17:06:56 所属栏目:PHP教程 来源:
导读:  $fileName = "data.txt";

  //声明一个变量用来保存被写入文件中的数据

  $data = "共10行数据\n";

  for($row=0;$row //将10数据都存放到一个字符串变量中

  $data .= $row.":\n";
  $fileName = "data.txt";
 
  //声明一个变量用来保存被写入文件中的数据
 
  $data = "共10行数据\n";
 
  for($row=0;$row //将10数据都存放到一个字符串变量中
 
  $data .= $row.":\n";
 
  }
 
  //一次将所有数据写入到指定的文件中
 
  file_put_contents($fileName, $data);
 
  该函数可以将数据直接写入到指定的文件中。如果同时调用多次时,并向同一个文件中写入数据,则文件中只保存了最后一次调用该函数写入的数据。因为在每次掉哟哦那个时都会重新打开文件并将文件中原有的数据清空,所以不能像第一个程序那样连续写入多行数据。
 
  二、读取文件内容
 
  在PHP中提供了多个从文件中读取内容的标准函数,可以根据它们的功能特性在程序中选择哪个函数使用。这些函数功能及其描述如下表所示。
 
  织梦中indexhtm对应的php文件在哪里_php格式文件怎么打开_php文件
 
  在读取文件时,不仅要注意行结束符号“\n”php文件,程序也需要一种标准的方式来识别何时到达文件的末尾,这个标准通常成为EOF(End Of File)字符。EOF是非常重要的概念,几乎每种主流的编程语言中都提供了相应的内置函数,来分析是否到达了文件EOF。在PHP中,使用feof()函数。该函数接受一个打开的文件资源,判断一个文件指针是否位于文件的结束处,如果在文件末尾处,则返回TRUE。
 
  ①函数fread()
 
  该函数用来在打开的文件中读取指定长度的字符串。也可以安全用于二进制文件,在区分二进制文件和文本文件的系统上(如Windows)打开文件时,fopen()函数的mode参数要加上'b'。函数fread()的原型如下所示:
 
  代码如下:
 
  string fread(int handle,int length) //读取打开的文件
 
  该函数从文件指针资源handle中读取最多length个字节。在读取完length个字节数,或到达EOF时,或(对于网络流)当一个包可用时都会停止读取文件,就看先碰到哪种情况了。该函数返回读取的内容字符串,如果失败则返回FALSE。函数的使用代码如下所示:
 
  代码如下:
 
  < ?php
 
  //从文件中读取指定字节数的内容存入到一个变量中
 
  $filename = "data.txt";
 
  $handle = fopen($filename, 'r') or die("文件打开失败 ");
 
  $contents = fread($handle, 100); //从文件中读取100个字节
 
  fclose($handle); //关闭文件资源
 
  echo $contents; //将从文件中读取的内容输出
 
  //从文件中读取全部内容到一个变量中,每次读取一部分,循环读取
 
  $filename = "c:\\files\\somepic.gif";
 
  $handle = fopen($filename, 'rb') or die("文件打开失败"); //以只读的方式,模式加了‘b'
 
  $contents = "";
 
  while(!feof($handle)){ //使用feof()判断文件结尾
 
  $contents .=fread($handle, 1024); //每次读取1024个字节
 
  }
 
  fclose($handle); //关闭文件资源
 
  echo $contents; //将从文件中读取的全部内容输出
 
  //另一种从文件中读取全部内容的方法
 
  $filename = "data.txt";
 
  $handle = fopen($filename, "r")or die("文件打开失败");
 
  $contents = fread($handle, filesize($filename)); //使用fielsize()函数一起读出
 
  fclose($handle);
 
  echo $contents;
 
  如果你只是想将一个文件的内容读入到一个字符串中,可以用file_get_contents()函数,它的性能比上面的代码好得多。file_get_contents()函数是用来将文件的内容读入到一个字符串中的首选方法,如果操作系统支持,还会使用内存映射技术来增强性能。该函数的使用代码如下所示:
 
  代码如下:
 
  < ?php
 
  echo file_get_contents("data.txt"); //读取文本文件中的内容并输出
 
  echo file_get_contents("c:\\files\\somepic.gif"); //读取二进制文件中的内容并输出
 
  ②函数fgets()、fgetc()
 
  fgets()该函数一次至多从打开的文件资源中读取一行内容。函数fgets()的原型如下所示:
 
  代码如下:
 
  string fgets(int handle[,int length]) //从打开的文件中返回一行
 
  第一个参数提供使用fopen()函数打开的资源。如果提供了第二个可选参数length,该函数返回length-1个字节。或者返回遇到换行或EOF之前读取的所有内容。如果忽略可选的length参数,默认为1024个字符。在大多数情况下,这意味着fgets()函数将读取到1024个字符前遇到换行符号,因此每次成功调用都会返回下一行。如果读取失败则返回FALSE。该函数的使用代码如下所示:
 
  代码如下:
 
  < ?php
 
  $handle = fopen("data.txt", "r") or die("文件打开失败 "); //以只读模式打开文件
 
  while(!feof($handle)){
 
  $buffer = fgets($handle,4096); //一次读取一行内容
 
  echo $buffer."
 
  "; //输出每一个行
 
  }
 
  fclose($handle);
 
  函数fgetc()在打开的文件资源中只读取当前指针位置处的一个字符。如果遇到文件结束标志EOF,则返回FALSE值。该函数的使用代码如下所示:
 
  代码如下:
 
  < ?php
 
  $fp = fopen('data.txt','r') or die("文件打开失败");
 
  while(false !==($char = fgetc($fp))){
 
  echo $char."
 
  ";
 
  }
 
  ③函数file()
 
  该函数非常有用,与file_get_contents()类似,不需要使用fopen()函数打开文件,不同的是file()函数可以把整个文件读入到一个数组中。数组中的每个元素对应文件中相应的行,各元素由换行符分割,同时换行符仍附加在每个元素的末尾。这样,就可以使用数组的相关函数对文件内容进行处理。该函数的使用代码如下所示:
 
  代码如下:
 
  < ?php
 
  //将文件test.txt中的内容读入到一个数组中,并输出
 
  print_r(file(test.txt));
 
  ④函数readfile()
 
  该函数可以读取指定的整个文件,立即输出到输出缓冲区,并返回读取的字节数。该函数也不需要使用fopen()函数打开文件。在下面的示例中,轻松地将文件内容输出到浏览器。代码如下所示:
 
  代码如下:
 
  < ?php
 
  //直接将文件data.txt中的数据读出并输出到浏览器
 
  readfile("data.txt");
 
  小编推出另一个微信公众号“求职面试小助手”,提供给大家面试技巧,面试常见问题,面试经验等,与大家共分享

(编辑:云计算网_韶关站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!