Не ждите завершения загрузки всей страницы для вывода результатов цикла

У меня есть PHP-скрипт, который содержит такой цикл:

<?php
foreach(range(1,50) as $index) {
   echo $index;
}
?>

Это должно вывести

1
2
3
4
5
... to 50

На моем предыдущем провайдере веб-хостинга он выводил их как 1, затем 2, затем 3, затем 4, затем 5 и т. д.

Но я перешел на нового веб-хостинг-провайдера, и теперь браузер не отображает их один за другим, как мой предыдущий веб-хостинг-провайдер, а ждет завершения загрузки всего PHP-скрипта, а затем выводит их в один раз.

Можно ли сделать моего нового провайдера веб-хостинга таким же, как мой предыдущий? Я не хочу, чтобы весь скрипт заканчивал загрузку, а затем выводил их за один раз.

Это что-то в php.ini?

РЕДАКТИРОВАТЬ: Это моя попытка использовать ob_start и ob_end_flush:

<?php
ob_start();
foreach(range(1,50) as $index) {
   echo $index;
}
ob_end_flush();
?>

Но все же.

secure.php.net/manual/en/function.flush.php
brombeer 03.02.2019 15:25

Вы можете играть с ob_flush и соответствующими функциями

ivanivan 03.02.2019 15:25

Простите меня, если я совсем не прав, разве не так работает PHP? Он выполняет код при загрузке страницы, когда вы запрашиваете страницу. Пример здесь tehplayground.com/SbPOf48VFJhwNAt4

user5283119 03.02.2019 15:26

Извините, я забыл свою попытку использовать функции ob_ .. Я добавил это.

gabugu 03.02.2019 15:27

@swonder - Мой цикл на самом деле не выводит числа, он выполняет HTTP-запросы к API, поэтому это требует времени, и я хочу, чтобы отображались завершенные итерации цикла, а не ждать завершения других итераций цикла, а затем отображать их вместе.

gabugu 03.02.2019 15:28

Это зависит от того, как PHP сконфигурирован с веб-сервером, на самом деле это не вопрос, связанный с программированием, это скорее вопрос системного администрирования, поскольку существует множество параметров конфигурации, которые предотвращают очистку, включая, помимо прочего, буферизацию вывода PHP, fastcgi буферизация модуля, сжатие gzip и многое другое.

Devon 03.02.2019 15:33

Возможность сделать это с помощью PHP очень схематична, потому что функции буфера могут быть перезаписаны 1) настройками php.ini, 2) веб-сервером, 3) браузером. Если вам действительно нужно что-то обновить в браузере в режиме реального времени в ответ на что-то, происходящее на сервере, лучшее место для этого кода — в самом браузере, т. е. JavaScript + асинхронный опрос.

Adam Nathaniel Davis 03.02.2019 17:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
112
0

Другие вопросы по теме