@chrispsow

Как выдавать посетителю сайта новую уникальную строчку из файла?

Здравствуйте.
Есть такой код:
echo "Инфо: ";

$file = fopen("file.txt", "r");
if ($file) {
	$line = fgets($file);
	echo "$line";
	
	$contents = file_get_contents($file);
	$contents = str_replace($line."\n", '', $contents);

	fclose($file);
} else {
	echo "Error";
}	

$file = fopen("file.txt", "w");
if ($file) {
	file_put_contents($file, $contents);
	fclose($file);
} else {

}


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

И файл с содержимым:
foo
bar
spam
eggs


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

Работает код, который выводит одну первую строку:
$file = fopen("file.txt", "r");
if ($file) {
	$line = fgets($file);
	echo "$line";
...


Когда добавляешь остальную часть - данные перестают отображаться

В чем может быть проблема?
Или есть варианты сделать это рациональней? В файле около 1000 строк.
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
2 файла: с одного читаем, в другой пишем
Ответ написан
Комментировать
@4iloveg
Full-Stack HTML Developer
file_get_contents() Принимает первым параметром строку с именем файла, про дескриптор файла в документации не сказано. Да и смысла в file_get_contents() нет если уже начали работать с указателем на файл то используйте fread().
И в первую очередь настройте php на отображение всех ошибок что бы не было ситуаций когда "данные перестают отображаться".
https://www.php.net/manual/ru/ref.filesystem.php смотрите документацию там много хороших примеров по работе с файлами
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы