Запись php в файл - пусто? - PullRequest
       1

Запись php в файл - пусто?

4 голосов
/ 06 февраля 2011

Я боролся с записью одной строки в файл. Я использую простой код под Slackware 13:

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

Файл создается (если он еще не создан), но он пустой ?! Каталог, в который записан этот файл, принадлежит пользователю и группе apache (daemon.daemon) и имеет разрешения 0777. Это никогда не случалось со мной раньше. Мне любопытно, почему я не могу написать внутри файла?

Спасибо заранее.

Ответы [ 4 ]

7 голосов
/ 06 февраля 2011

Попробуйте $ df -h

Это, вероятно, означает, что ваш диск заполнен.

2 голосов
/ 06 февраля 2011

На мой взгляд, вы можете проверить возвращаемые значения:

$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";
}
1 голос
/ 06 февраля 2011

Возможно, что-то происходит со скриптом / файлом до его закрытия.Проверьте, есть ли другие процессы, которые пытаются получить доступ к файлу (вы можете использовать lsof).Также попробуйте выполнить запись в новый файл, чтобы узнать, происходит ли то же самое.

Кроме того, проверьте возвращаемое значение на fclose(), чтобы убедиться, что файл успешно закрывается.

1 голос
/ 06 февраля 2011

Я предлагаю использовать file_put_conents ($ file_name, $ file_cotents); И для извлечения контента: file_get_contents ($ file_name);

Код тоже выглядит чище.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...