PHP写入文件函数汇总(附带实例)
打开文件后,如果要实现修改文件的功能,那么必须对文件进行写入操作,在 PHP 中通过使用 fwrite() 函数、fputs() 函数和 file_put_contents() 函数来实现。
【实例 1】写入文件。
readme 文件原内容如下:
该函数的参数 data 可以是数组(但不能为多维数组),即 file_put_contents($filename,join('', $array))。
file_put_contents() 函数的参数及其说明如下表所示:
【实例 2】通过 file_put_contents() 函数在 readme 文件现有内容中添加一段字符串,并将这些字符串分为 3 行。
fwrite() 函数和 file_put_contents() 函数之间的区别如下:
PHP fwrite()函数
该函数的基本语法如下:int fwrite ( resource $handle , string $string [, int $length ] )fwrite() 函数把 string 参数的值写入文件指针 handle 处。如果已指定 length 参数的值,当写入了相应长度的内容或者写完 string 参数的值后,写入就会停止。
【实例 1】写入文件。
<?php
$filename = 'readme';
$somecontent = "添加这些文字到文件 ";
// 首先要确定文件存在并且可写入
if (is_writable($filename)) {
// 在这个实例中,将使用添加模式打开 $filename,因此,文件指针将会在文件的末尾,
// 即当使用 fwrite() 函数时,$somecontent 将要写入的地方
if (!$handle = fopen($filename, 'a')) {
echo "不能打开文件 $filename";
exit;
}
// 将 $somecontent 写入已打开的文件
if (fwrite($handle, $somecontent) === FALSE) {
echo "不能写入文件 $filename";
exit;
}
echo "成功地将 $somecontent 写入文件 $filename";
fclose($handle);
} else {
echo "文件 $filename 不可写入";
}
?>
运行结果为:
成功地将 添加这些文字到文件 写入文件
readme 文件原内容如下:
[root@clinux html]# cat readme 1.test 2.测试文件现有内容如下:
[root@clinux html]# cat readme 1.test 2.测试文件 添加这些文字到文件 添加这些文字到文件
PHP fputs()函数
此函数是 fwrite() 函数的别名,其用法和 fwrite() 函数一样,这里不再赘述。PHP file_put_contents()函数
该函数的基本语法如下:int file_put_contents ( string $filename , string $data [, int $flags [, resource $context ]] )该函数将一个字符串写入文件。它和依次调用 fopen() 函数、fwrite() 函数及 fclose() 函数所实现的功能一样。
该函数的参数 data 可以是数组(但不能为多维数组),即 file_put_contents($filename,join('', $array))。
file_put_contents() 函数的参数及其说明如下表所示:
| 参数 | 说明 |
|---|---|
| filename | 要被写入数据的文件名 |
| data | 要写入的数据。类型可以是 string、array 等 |
| flags | 可以是 FILE_USE_INCLUDE_PATH, FILE_APPEND / LOCK_EX(获得一个独占锁定),然而在使用 FILE_USE_INCLUDE_PATH 时要特别谨慎 |
| context | 一个语境资源 |
【实例 2】通过 file_put_contents() 函数在 readme 文件现有内容中添加一段字符串,并将这些字符串分为 3 行。
<?php
$filename="readme";
$data="悄悄地, 我走了\r\n正如我悄悄地来\r\n我挥一挥衣袖";
$write=file_put_contents($filename,$data);
if($write==false)
echo “不能写入文件”.$filename;
else
echo "已经成功向“$filename”文件中添加内容,添加的字节数是".$write;
}
?>
执行代码后,运行结果为:
已经成功向readme文件中添加内容,添加的字节数是64
fwrite() 函数和 file_put_contents() 函数之间的区别如下:
- 使用 file_put_contents() 函数时,如果没有第 3 个参数,会改写原文件;
- 使用 file_put_contents() 函数时,不必先用 fopen() 函数打开文件;
- 如果要实现和 fwrite() 函数相同的功能,需要将 file_put_contents() 函数的第 3 个参数指定为 FILE_APPEND;
- file_put_contents() 函数是文件操作函数的一个包装,用于简化写文件的操作。包装与不包装的区别在于包装后的函数简单、灵活性较差,不包装的函数灵活性较强,但更复杂些。
ICP备案:
公安联网备案: