当打开一个已经存在的文件(通常是追加写入模式下),有必要检测该文件是否具有写入权限,从而避免一个系统错误的发生。使用 is_writable 函数检测文件是否可写。
下面是追加写入模式下一个比较严格检查的例子:
<?php
$filename = 'file.txt';
$word = "你好!n";
// 确定文件存在并且可写
if (is_writable($filename)) {
//打开文件
if (!$fh = fopen($filename, 'a')) {
echo "不能打开文件 $filename";
exit;
}
// 写入内容
if (fwrite($fh, $word) === FALSE) {
echo "不能写入到文件 $filename";
exit;
}
echo "成功地将 $word 写入到文件 $filename";
fclose($fh);
} else {
echo "文件 $filename 不可写";
}
?>
PHP fwrite 函数只是执行向文件写入字符串的动作,实际它的行为结果取决于 fopen 函数更多一些。如果想一次性将字符串写入或追加至文件,file_put_contents 函数可能是更优的选择。