大家好! 我在这里检查了10个以上类似的问题但他们没有帮助。 我有一个小脚本,它应该从$ _GET []中写入一些值的内容并将其写入文件。 该脚本工作了一个月,但意外停止了。 现在它只截断文件。
文件对于apache用户是可写的: -rwxrwxrwx 1 apache root0Июл907:39 ipnt
$newips2=trim($_GET['newips2']);
if ($newips2) {
echo ('debug: #newips2:'.$newips2.'<br>');
if ($handle2=fopen('ipnt','w')) {
fwrite($handle2,$newips2);
fclose($handle2);
echo ("updated<br>");
} else {
echo ("file isn't open for writing<br>");
}
}
我看到$ newips2不为空并且在输出中看到“已更新”,因此如果语句解析为true。 我甚至尝试过使用
fflush($handle2)
和
ftruncate($handle2,ftell($handle2));
并尝试将'b'添加到fopen模式。
我在.htaccess中启用了错误报告:
php_value error_reporting E_ALL
php_value display_errors On
php_value display_startup_errors On
但仍然没有显示错误。没有运气。
任何帮助都将不胜感激。
答案 0 :(得分:0)
在阅读文档http://php.net/manual/fr/function.fopen.php之后,如果您添加新行文件末尾,则需要使用。
$newips2=trim($_GET['newips2']);
if ($newips2) {
echo ('debug: #newips2:'.$newips2.'<br>');
if ($handle2=fopen('ipnt','a')) {
fwrite($handle2,$newips2 . "\n");
fclose($handle2);
echo ("updated<br>");
} else {
echo ("file isn't open for writing<br>");
}
}
答案 1 :(得分:0)
这是非常愚蠢的原因:没有磁盘空间。 主持人,您可以删除整个问题。