открыть fread и fwrite проблемы

Я пытаюсь, чтобы пользователь что-то написал в текстовом поле. Затем текст записывается НА НОВОЙ ЛИНИИ в файле с именем «list.txt». Тогда я хочу, чтобы весь файл был прочитан на сайте. Таким образом, это будет похоже на чат или что-то в этом роде. Проблема в том, что сейчас он говорит мне: «Невозможно открыть файл». Я проверил и разрешения файла и каждый тип пользователя имеет полный доступ. List.txt также находится в том же каталоге, что и файл php. Кроме того, когда он мог открыть файл, он не записывал его в новую строку. Я знаю, что это можно сделать с помощью «\ n» или PHP.EOL, но ни один из них, похоже, не работал, и иногда они мешали сайту работать само по себе. Пожалуйста, помогите мне разобраться, что происходит, спасибо.

<html>

<p>
<form name="form1" method="post" action="test.php">
<input name="text" type="text">
<input type="submit" value="send" method="post">
</p>

<p>
<?php$file = fopen("list.txt") or die ("Unable to open file!");
$text = $_POST['text'];//where the hell do you put the new line indicator: "\n"//

fwrite($file, $text) or die ("Cannot write!");$print = fread($file,filesize("list.txt", "a+"));
fclose($file);
echo $print;?></p><?php //figure out how to make this a button that clears the file
/*
$fp = fopen("list.txt", "r+");
// clear content to 0 bits
ftruncate($fp, 0);
//close file
fclose($fp);*/
?></html>

1

Решение

использование file_put_contents

   $file = 'list.txt';
$content =  $_POST['text']."\n";
// Write the contents to the file,
// using the FILE_APPEND flag to append the content to the end of the file
file_put_contents($file, $content, FILE_APPEND);

Согласно документации

Эта функция идентична вызову fopen (), fwrite () и fclose ()
последовательно записывать данные в файл.

Если имя файла не существует, файл создается. В противном случае
существующий файл перезаписывается, если не установлен флаг FILE_APPEND.

1

Другие решения

У вас проблема с тем, что ваш файл будет заблокирован на время, когда php напишет содержимое.

Если вы хотите писать одновременно, то у вас в течение короткого времени нет доступа к вашему файлу. Это большая проблема файловых решений. Для этого созданы движки баз данных.

0

По вопросам рекламы [email protected]