Задать вопрос

Как сделать, чтобы при каждом обращении к РНР скрипту, он выводил по две новые строки из текстового файла?

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

$arr = file("reviews.dat");

shuffle($arr);

$res = array_slice($arr, 0, 2);

foreach ($res as $str) {

	echo $str;

}


$arr = file("reviews.dat");

shuffle($arr);

for($i=0; $i<2; $i++) {

	echo $arr[$i];	
}
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
delphinpro
@delphinpro Куратор тега PHP
frontend developer
shuffle($arr) - перемешивание массива. Если нужно по порядку, то просто убрать это.
Ответ написан
Anastasia2306
@Anastasia2306
PHP-разработчик.
нужно использовать array_slice без shuffle

Если ты хочешь выводить строки с конца файла, то нужно будет использовать array_slice после array_reverse:
Вывод по две строки с начала файла:
$arr = file("reviews.dat");
$res = array_slice($arr, 0, 2);

foreach ($res as $str) {
    echo $str;
}


Вывод по две строки с конца файла:
$arr = file("reviews.dat");
$arr = array_reverse($arr);
$res = array_slice($arr, 0, 2);

foreach ($res as $str) {
    echo $str;
}
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Лучше оставить рандомный вывод.
Усилия, которые вы затратите на вывод по порядку, совершенно не стоят результата.
Если после одной перезагрузки выведутся те же две строчки - никто от этого не умрёт.

Вместо этой дурацкой затеи лучше потратьте время на изучение основ программирования.
И в частности, того факта, что РНР не запоминает состояние. Он не запоминает даже значения переменных, не говоря уже о позиции в файле, который он читал во время прошлого запроса.
Чтобы обеспечить последовательный вывод, надо где-то запоминать текущую позицию.
Это может быть, например, сессия. Но клиент может не поддерживать сессии. И тогда ваш скрипт будет выдавать ему всегда первые две строчки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽