开发者

Php writing to file - empty?

开发者 https://www.devze.com 2023-02-09 02:00 出处:网络
I\'ve been struggling with writing a single string into a file. I\'m using just a simple code under Slackware 13:

I've been struggling with writing a single string into a file. I'm using just a simple code under Slackware 13:

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

The file gets created (if it's not already created) but it's empty ?! The directory in which this file is written is owned by apache's user & group (daemon.daemon) and has 0777 permissions. This has never happened to me开发者_如何学Go before. I'm curious what's the reason I'm not able to write inside the file ?

Thanks in advance.


Try $ df -h

It probably means your disk is full.


In my opinion you could check the return values:

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


I suggest using file_put_conents($file_name, $file_cotents); And to retrieve content: file_get_contents($file_name);

Code looks cleaner too.

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


Could be something is happening to the script/file before the file is closed. Check if there are any other processes that try to access the file (you can use lsof). Also try writing to a new file to see if the same thing occurs.

Also, check the return value on fclose() to make sure the file is being closed successfully.

0

精彩评论

暂无评论...
验证码 换一张
取 消