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所示。
(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。
共有条评论 网友评论