这篇文章主要介绍了PHP文件读写操作相关函数总结,本文总结了fwrite()、fread()、fgets()、fgetc()、file()、readfile() 等函数的介绍及使用例子,需要的朋友可以
一、fwrite()写入文件
将程序中的数据保存到文件中比较容易,使用fwrite()函数就可以将字符串内容写入文件中。在文件中中通过字符序列\n表示换行符,表示文件中一行的末尾。当需要一次输入或输出一行信息时,请记住这一点。不同的操作系统具有不同的结束符号,基于UNIX的系统使用“\n”作为行结束字符,基于Windows系统使用“\r\n”作为行结束字符,基于Macintosh的系统使用“\r”作为行结束字符。当要写入一个文本文件并想插入一个新行时,需要使用相应操作系统的行结束符号。函数fwrite()的原型如下所示:
复制代码 代码如下:
int fwrite(resource handle,string string[,int length]) //写入文件
复制代码 代码如下:
//声明一个变量用来保存文件名
$fileName = "data.txt";
//使用fopen()函数以只写的模式打开文件,如果不存在则创建它,打开失败则通过程序
$handle = fopen($fileName,'w') or die('打开'.$fileName.'文件失败!!');
//循环10次写入10行数据到文件中
for($row=0;$row
fwrite($handle, $row.":\n");
}
fclose($handle);
?>
该程序执行后,如果当前目录下存在data.txt文件,则清空该文件并写入10行数据。如果不存在data.txt文件,则会创建该文件并将10行数据写入。另外写入文件还可以使用fputs()函数,该函数是fwrite()函数的别名函数如果需要快速写入文件,可以使用file_put_contents()函数,和依次调用fopen(),fwrite()以及fclose()函数的功能一样。该函数的使用代码如下所示:
复制代码 代码如下:
//声明一个变量用来保存文件名
$fileName = "data.txt";
//声明一个变量用来保存被写入文件中的数据
$data = "共10行数据\n";
for($row=0;$row
//将10数据都存放到一个字符串变量中
$data .= $row.":\n";
}
//一次将所有数据写入到指定的文件中
file_put_contents($fileName, $data);
?>
该函数可以将数据直接写入到指定的文件中。如果同时调用多次时,并向同一个文件中写入数据,则文件中只保存了最后一次调用该函数写入的数据。因为在每次掉哟哦那个时都会重新打开文件并将文件中原有的数据清空,所以不能像第一个程序那样连续写入多行数据。
二、读取文件内容
在PHP中提供了多个从文件中读取内容的标准函数,可以根据它们的功能特性在程序中选择哪个函数使用。这些函数功能及其描述如下表所示。
在读取文件时,不仅要注意行结束符号“\n”,程序也需要一种标准的方式来识别何时到达文件的末尾,,这个标准通常成为EOF(End Of File)字符。EOF是非常重要的概念,几乎每种主流的编程语言中都提供了相应的内置函数,来分析是否到达了文件EOF。在PHP中,使用feof()函数。该函数接受一个打开的文件资源,判断一个文件指针是否位于文件的结束处,如果在文件末尾处,则返回TRUE。
①函数fread()
该函数用来在打开的文件中读取指定长度的字符串。也可以安全用于二进制文件,在区分二进制文件和文本文件的系统上(如Windows)打开文件时,fopen()函数的mode参数要加上'b'。函数fread()的原型如下所示:
复制代码 代码如下:
string fread(int handle,int length) //读取打开的文件
复制代码 代码如下:
//从文件中读取指定字节数的内容存入到一个变量中
$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;
?>