Php写入文件-空?
我一直在努力将单个字符串写入文件。 我只是在Slackware 13下使用了一个简单的代码:Php写入文件-空?,php,file,Php,File,我一直在努力将单个字符串写入文件。 我只是在Slackware 13下使用了一个简单的代码: $fp = fopen('/my/absolute/path/data.txt', 'w'); fwrite($fp, 'just a testing string...'); fclose($fp); 文件已创建(如果尚未创建)但为空?! 写入此文件的目录归apache的用户组(daemon.daemon)所有,并具有0777权限。 这在我身上从未发生过。我很好奇为什么我不能在文件里写 提前谢谢 我
$fp = fopen('/my/absolute/path/data.txt', 'w');
fwrite($fp, 'just a testing string...');
fclose($fp);
文件已创建(如果尚未创建)但为空?!
写入此文件的目录归apache的用户组(daemon.daemon)所有,并具有0777权限。
这在我身上从未发生过。我很好奇为什么我不能在文件里写
提前谢谢 我建议使用文件内容($file\u name,$file\u compents); 和检索内容:file\u get\u contents($file\u name) 代码看起来也更干净 及
我认为您可以检查返回值:
$fp = fopen('/my/absolute/path/data.txt', 'w');
// $fp -> manual: "Returns a file pointer resource on success, or FALSE on error."
if ($fp) {
$bytes_written = fwrite($fp, 'just a testing string...');
if ($bytes_written) {
echo "$bytes_written bytes written!\n";
} else {
echo "Error while writing!\n"
}
$success = fclose($fp);
if ($success) {
echo "File successfully closed!\n";
} else {
echo "Error on closing!\n";
}
} else {
echo "No filepointer ressource!\n";
}
可能是在关闭文件之前脚本/文件发生了某些情况。检查是否有任何其他进程尝试访问该文件(您可以使用
lsof
)。还可以尝试写入新文件,以查看是否发生相同的情况
另外,检查
fclose()
上的返回值以确保文件已成功关闭。请尝试$df-h
这可能意味着您的磁盘已满。代码本身绝对没有问题。@Boris。。。该死我讨厌那东西…:这就是问题所在。。。很明显,我的日志都写满了。。。谢谢大家的帮助:)附言。写下来作为问题的答案:)很好,鲍里斯。奇怪的是,PHP没有产生任何错误来表明由于磁盘空间不足而导致写入失败。在发布问题之前,我已经厌倦了这一点。结果是相同的-空文件。我猜是因为痛苦的经历,真是太棒了?:)