首先,fwrite()被写入文件
将程序中的数据保存到文件中很容易,您可以使用fwrite()函数将字符串内容写入文件。在文件中,换行符由字符序列表示,它表示文件中一行的结尾。当您需要一次一行地输入或输出信息时,请记住这一点。不同的操作系统有不同的结束符号。基于UNIX的系统使用“n”作为行尾字符,基于Windows的系统使用“rn”作为行尾字符,基于Macintosh的系统使用“r”作为行尾字符。当你想写一个文本文件并插入一个新行时,你需要使用相应操作系统的行尾符号。函数fwrite()的原型如下:复制代码如下: int fwrite(资源句柄,字符串字符串[,int length])//写文件的第一个参数需要提供fopen()函数打开的文件资源,fopen()函数将第二个参数提供的字符串内容输出到第一个参数指定的资源。如果给出第三个可选参数lenth,当写入长度字符时,fwrite()将停止。否则,它会一直写,直到到达内容的末尾。如果写入的内容少于长度字节,该函数也将在写入所有内容后停止。函数fwrite()返回执行后写入的字符数,出现错误时返回FALSE。以下代码是写入文件的示例。
复制代码代码如下:Php//声明一个变量来保存文件名$ fileName=' data.txt//使用fopen()函数以只写模式打开文件,如果不存在,就创建它,如果无法打开,就无法通过程序$ handle=fopen ($ filename,' w ')或die ('open ')打开文件。$fileName。/br!');//将10行数据写入文件10个周期($ row=0;$ row10$row ){fwrite($handle,$row。 www . lamp brother . net n ');} fc lose($ handle);
程序执行后,如果当前目录中存在data.txt文件,则清除该文件并写入10行数据。如果data.txt文件不存在,将创建该文件并写入10行数据。另外,fputs()函数可以用来写文件,是fwrite()函数的别名函数。如果需要快速写文件,可以使用file_put_contents()函数,其功能与依次调用fopen()、fwrite()和fclose()函数相同。该功能的使用代码如下:
复制代码代码如下:Php//声明一个变量来保存文件名$ fileName=' data.txt//声明一个变量保存文件中写入的数据$data='总共10行数据 n ';for($ row=0;$ row10$row ){//将所有10个数据存储到字符串变量$ data中。=$ row。 www.lamprother.net n ';}//一次性将所有数据写入指定文件file _ put _ contents ($ filename,$ data);
这个函数可以将数据直接写入指定的文件。如果同时多次调用该函数,并将数据写入同一文件,则文件中只保存最后一次调用该函数时写入的数据。因为文件将被重新打开,并且文件中的原始数据将在每次删除时被清空,所以您不能像第一个程序那样连续写入多行数据。
二、阅读文件内容
在PHP中,有几个从文件中读取内容的标准函数,在程序中可以根据它们的功能特点来选择这些函数。下表显示了这些功能及其说明。
在读取文件时,我们不仅要注意行尾符号“n”,还需要一种标准的方式来识别文件何时到达末尾。这个标准通常被称为文件结束字符。EOF是一个非常重要的概念,几乎每一种主流编程语言都提供了相应的内置函数来分析文件EOF是否已经达到。在PHP中,使用feof()函数。此函数接受打开的文件资源,确定文件指针是否在文件的末尾,如果在文件的末尾,则返回真。
函数fread()
此函数用于从打开的文件中读取指定长度的字符串。它也可以安全地用于二进制文件。在区分二进制文件和文本文件的系统(如Windows)上打开文件时,fopen()函数的mode参数应加上' b '。函数fread()的原型如下:复制代码如下: String fread (int句柄,int长度)//读取打开的文件。这个函数从文件指针资源句柄中读取最大长度字节。当读取长度字节时,或者当达到EOF时,或者(对于网络流)当包可用时,文件读取将停止,这取决于哪种情况先发生。该函数返回读取的内容字符串,如果失败,则返回FALSE。该功能的使用代码如下:复制代码如下:Php//从文件中读取指定的字节数,并将其存储在变量$filename='data.txt '中;$ handle=fopen ($ filename,' r ')或die('文件打开失败');$contents=fread($handle,100);//从文件中读取100字节fclose($ handle);//关闭文件资源echo $ contents//输出从文件中读取的内容//将文件中的所有内容读入一个变量,一次一个部分,循环读取$ filename=' c : files some pic . gif ';$ handle=fopen ($ filename,' Rb ')或die('文件打开失败');//以只读方式,模式添加了' b ' $ contents=while(!Feof($handle)){ //使用Feof()判断文件$contents的结尾。=fread($handle,1024);//一次读取1024字节} fclose($ handle);//关闭文件资源echo $ contents//输出从文件中读取的所有内容//从文件中读取所有内容的另一种方法$ filename=' data.txt$ handle=fopen ($ filename,' r ')或die('文件打开失败');$contents=fread($handle,file size($ filename));//使用fielsize()函数一起读出fclose($ handle);echo $ contents?
如果您只想将文件的内容读入字符串,可以使用file_get_contents()函数,该函数的性能比上面的代码好得多。file_get_contents()函数是将文件内容读入字符串的首选方法。如果操作系统支持,内存映射技术也用于提高性能。该功能的使用代码如下:复制代码如下:phpecho file _ get _ contents(' data . txt ');//读取文本文件中的内容,输出echo file _ get _ contents(' c : files some pic . gif ');//读取二进制文件的内容并输出?
函数fgets(),fgetc()
这个函数一次最多从一个打开的文件资源中读取一行。函数fgets()的原型如下:复制代码如下: String fgets (int handle [,int length])//从打开的文件返回一行。第一个参数提供了使用fopen()函数打开的资源。如果提供了第二个可选参数长度,函数将返回长度-1字节。或者返回遇到换行符或EOF之前读取的所有内容。如果忽略可选长度参数,默认值为1024个字符。在大多数情况下,这意味着fgets()函数在读取1024个字符之前会遇到一个换行符,因此每次成功的调用都会返回下一行。如果读取失败,则返回FALSE。该功能的使用代码如下:复制代码如下:PHP $ handle=fopen ('data.txt ',' r ')或die('文件打开失败');//打开文件的同时(!feof($ handle)){ $ buffer=fgets($ handle,4096);//一次读取一行echo $buffer。br ';//每次飞行的输出fclose ($ handle );
函数fgetc()只读取打开文件资源中当前指针位置的一个字符。如果遇到文件结束标志EOF,则返回FALSE值。该功能的使用代码如下:
复制代码代码如下:PHP $ FP=fopen ('data.txt ',' r ')或die('文件打开失败');while(false!==($ char=fgetc($ FP))){ echo $ char。br ';} ?
功能文件()
这个功能非常有用。类似于file_get_contents(),不需要使用fopen()函数打开文件。不同的是file()函数可以将整个文件读入一个数组。数组中的每个元素都对应文件中对应的行,每个元素都被一个换行符分割,而换行符仍然附加在每个元素的末尾。这样,您可以使用数组的相关函数来处理文件的内容。该功能的使用代码如下:复制代码如下:Php//将文件test.txt的内容读入数组,输出print _ r(file(test . txt));
函数readfile()
这个函数可以读取整个指定文件,立即输出到输出缓冲区,并返回读取的字节数。这个函数也不需要使用fopen()函数来打开文件。在下面的示例中,文件的内容很容易输出到浏览器。代码如下:复制代码如下:Php//直接读取文件data.txt中的数据,输出到浏览器read file(' data . txt ');