文章教程

6.2.3向文件写入内容

9/17/2020 9:26:54 PM 人评论 次浏览

6.2.3 向文件写入内容

除了从文件读出内容,有时还需要向文件写入数据。本小节就介绍如何在PHP程序中向文件写入数据。可以通过以下3个函数完成对文件的写入操作:函数fwrite()、函数fputs()和函数file_put_contents()。

(1)函数fwrite()的语法如下所示。


int fwrite($fp,string$content[,int$length]);


参数$fp是已打开的文件的句柄,$content是要向文件写入的内容。第3个参数$length是一个可选参数,表示写入数据的最大的字节数,这就是说,当向文件写入了length字节后,写入就会停止。当然,如果$content的长度小于$length,函数写完$content后就已停止写入。如果写入成功,该函数返回写入的字符数,否则返回FALSE。代码6-5演示了函数fwrite()的用法。

代码6-5 使用函数fwrite()向文件写入数据6-5.php


01 <?php

02 $file="data.txt";

03 $content="内容标题\r\n内容第一行\r\n内容第二行";//要写入文件的内容

04

05 //打开文件$file时,使用追加模式,此时文件指针会在文件开始处

06 if(!$fp=fopen($file,'a'))

07 {

08 echo"打开文件$file失败!";

09 exit;

10 }

11

12 if(fwrite($fp,$content)===FALSE)//将内容$content写入文件

13 {

14 echo"写入文件失败!";

15 exit;

16 }

17

18 echo"写入文件成功!";

19 fclose($fp);//关闭文件

20 ?>


【代码解析】这段程序向当前目录下的文件data.txt中写入一些内容,因为使用了'a'模式打开文件,如果当前目录下不存在data.txt,函数fopen()会尝试创建该文件。代码第12行,通过函数fwrite()将变量$content所存内容写入data.txt,同时判断是否写入成功,如果写入失败,则向页面输出一个错误提示信息。

注意 因为是在Windows平台下向文件写入内容,所以变量$content里的数据使用\r\n作为一行的结束符号,即换行。而在UNIX系统中,使用\n作为行结束字符。

通过浏览器执行该程序,如果执行正常,就会出现“写入文件成功!”的提示,同时到当前目录中打开文件data.txt,可以看到文件里已经写入内容,如图6-7所示。

图 6-7 通过fwrite()向文件写入的内容

(2)函数fputs()是函数fwrite()的别名,其实它就是函数fwrite(),用法和fwrite()一样,这里不再赘述。

(3)函数file_put_contents()也可以完成向文件写入数据,该函数的语法如下所示。


int file_put_contents(string$filename,string$data);


该函数主要有两个参数,参数$filename是要写入数据的文件的名称,参数$data是要写入的数据。使用函数file_put_contents(),相当于依次调用了fopen()、fwrite()和fclose(),因此,程序中不必再使用这3个函数。如果执行成功,该函数返回写入文件的字节数,否则返回FALSE。

教程类别