PHP - 使用file_put_contents()函数写文件(以及内容追加、换行)
在 PHP 应用中我们常常需要写日志或者记录一些信息,除了可以组合使用 fopen()、fwrite()、fclose() 进行操作外,还可以直接使用 file_put_contents() 写文件内容,十分简单。

(2)运行结果如下:
1,file_put_contents() 介绍
- 该函数可以把一个字符串写入文件中。
- 写入文件的数据可以是字符串、数组或数据流。
- 指定的文件如果不存在的话,则会自动创建一个新文件。
- 每次调用默认的是重新写文件,就是说会替换原先的内容。
<?php $file = 'log.txt';//要写入文件的文件名(如果文件不存在,将会创建一个) $content = "第一次写入的内容。"; if($f = file_put_contents($file, $content)){ echo "写入成功<br/>"; } $content = "第二次写入的内容。"; if($f = file_put_contents($file, $content)){ echo "写入成功<br/>"; }

2,以追加形式写入内容
可以添加 FILE_APPEND 参数,表示在已有文件内容后面追加内容的方式写入新数据。<?php $file = 'log.txt';//要写入文件的文件名(如果文件不存在,将会创建一个) $content = "第一次写入的内容。"; if($f = file_put_contents($file, $content, FILE_APPEND)){ echo "写入成功<br/>"; } $content = "第二次写入的内容。"; if($f = file_put_contents($file, $content, FILE_APPEND)){ echo "写入成功<br/>"; }

3,内容换行
(1)当我们添加的内容需要换行时,不建议直接使用 \r\n,因为不同操作系统下换行符是不一样的:- windows 换行符:\r\n
- Mac 换行符:\r
- Liunx 换行符:\n
(2)我们可以使用 PHP 提供了一个常量 PHP_EOL 来匹配不同的操作系统:
<?php $file = 'log.txt';//要写入文件的文件名(如果文件不存在,将会创建一个) $content = "第一次写入的内容。"; if($f = file_put_contents($file, $content.PHP_EOL, FILE_APPEND)){ echo "写入成功<br/>"; } $content = "第二次写入的内容。"; if($f = file_put_contents($file, $content.PHP_EOL, FILE_APPEND)){ echo "写入成功<br/>"; }

附:文件内容的读取
(1)除了 file_put_contents() 函数外,PHP 还提供了个 file_get_contents() 函数来让我们方便地读取文件内容。
$file = 'log.txt'; if($data = file_get_contents($file)){ echo "写入文件的内容是:$data"; }
(2)运行结果如下:
