当前位置: > > > PHP - 使用file_put_contents()函数写文件(以及内容追加、换行)

PHP - 使用file_put_contents()函数写文件(以及内容追加、换行)

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

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)运行结果如下:
评论0