Php写入文件 - 空?

时间:2011-02-06 16:22:17

标签: php file

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

$fp = fopen('/my/absolute/path/data.txt', 'w');
fwrite($fp, 'just a testing string...');
fclose($fp);

文件被创建(如果它尚未创建)但它是空的? 写入此文件的目录由apache的用户& group(daemon.daemon)并具有0777权限。 这在我之前从未发生过。我很好奇是什么原因导致我无法在文件中写入内容?

提前致谢。

4 个答案:

答案 0 :(得分:6)

尝试$ df -h

这可能意味着您的磁盘已满。

答案 1 :(得分:2)

在我看来,你可以查看返回值:

$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";
}

答案 2 :(得分:1)

我建议使用file_put_conents($ file_name,$ file_cotents); 并检索内容:file_get_contents($ file_name);

代码也看起来更干净。

http://php.net/manual/en/function.file-put-contents.phphttp://www.php.net/manual/en/function.file-get-contents.php

答案 3 :(得分:1)

在文件关闭之前,脚本/文件可能会发生某些事情。检查是否有任何其他进程尝试访问该文件(您可以使用lsof)。还可以尝试写入新文件以查看是否发生了同样的事情。

另外,检查fclose()上的返回值以确保文件成功关闭。