Я не могу прочитать данные из файла, это ничего не дает мне в php? - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь записать / прочитать данные в файл, когда я запускаю страницу, я удаляю файл и создаю новый файл:

unlink("t.txt");
$myfile = fopen("t.txt", "w+");

, затем я записываю данные в файл, используя следующее:

file_put_contents('t.txt', $number.PHP_EOL , FILE_APPEND | LOCK_EX);

затем я пытаюсь прочитать каждую строку файла следующим образом:

$lines = file("t.txt");
foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

В файле есть данные, но проблема в том, что я ничего не получаю на экране, какя могу решить эту проблему?

1 Ответ

0 голосов
/ 16 октября 2018

Я думаю, что содержимое никогда не записывается в файл.

Причина, по которой я пришел к такому выводу: вы открыли файл с блокировкой записи, а затем пытаетесьдля записи в один и тот же файл с использованием другого набора функций доступа к файлу.

Согласованность является ключевым фактором: если вы хотите использовать fopen, вы должны также использовать fwrite и остальные команды этого набора(fclose когда вы закончите, fread для чтения потока и т. Д.).

В качестве альтернативы используйте file_get_contents, file_put_contents и file (а также несколько других) дляИзбегайте использования потоков.Лично я предпочитаю их для обычных текстовых файлов, но они могут быть дорогостоящими для чего-то слишком большого.Потоки хороши при работе с большими файлами или файлами, которые не являются текстовыми.

Вероятное решение вашей проблемы: удалите строку fopen.

Другая потенциальная причина может быть связана с доступомразрешения.Может быть, лучше провести дальнейшую диагностику, если мое решение, описанное выше, не работает для вас.

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