Поэтому я пишу одноразовый скрипт для своего личного использования, и я хочу видеть, как этот процесс идет. В основном я обрабатываю несколько тысяч релизов и отправляю их в нашу новую CMS.
Поэтому я не забиваю CMS, я делаю скрипт sleep
на пару секунд после каждых 5 запросов.
Я бы хотел, чтобы скрипт выполнял, чтобы увидеть, как мое echo
сообщение говорит мне, что сценарий будет спать или что последняя транзакция с веб-сервисом прошла успешно.
Возможно ли это в PHP?
Спасибо за вашу помощь!
Iain
Используйте ob_flush
для отправки любых данных в буфер. Таким образом, вы можете выполнить некоторые команды, очистить вывод и затем немного спящий, прежде чем обрабатывать больше команд.
Я замечаю, что на особенно длинных сценариях PHP, похоже, начинает отправлять то, что у него есть в буфере, даже если скрипт не закончил выполнение
По умолчанию PHP никогда не будет эхом ничего, пока весь скрипт не завершит выполнение. Это просто ваш браузер, пытающийся вывести слишком много данных за один раз, или у вас есть что-то, что заставляет его где-то скрываться.
Вы можете попробовать использовать флеш и посмотреть другие функции управления выходом , но они могут быть бесполезны. Программное обеспечение вашего веб-сервера может задерживать ответ независимо от него.
Вот пакет PHP, который его обертывает:
https://packagist.org/packages/coderofsalvation/browser-stream
BrowserStream::enable(); BrowserStream::put("loading"); for( $i = 0; $i < 10; $i++ ){ BrowserStream::put("."); sleep(1); }
Возможно, вам захочется изучить команды flush http://php.net/manual/en/function.flush.php