Php写入文件-空?

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权限。 这在我身上从未发生过。我很好奇为什么我不能在文件里写 提前谢谢 我

我一直在努力将单个字符串写入文件。 我只是在Slackware 13下使用了一个简单的代码:

$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没有产生任何错误来表明由于磁盘空间不足而导致写入失败。在发布问题之前,我已经厌倦了这一点。结果是相同的-空文件。我猜是因为痛苦的经历,真是太棒了?:)