Intereting Posts
изменить значение через 24 часа Как полностью реализовать сервер-отправленные события для опроса сообщений Как преобразовать объект в массив без префикса имени класса в PHP? Продолжить саморазвитие в PHP или перейти к PHP Framework? Использование pdo в php с хранимой процедурой Опубликовать статус + изображение с TwitterAPIExchange на Twitter Определение кросс-платформенной функции money_format (Linux и Windows) «Валидатор» Laravel «иногда» терпит неудачу с вложенными массивами Как подключиться к двум таблицам в MYSQL с одинаковым идентификатором в нескольких строках Laravel 4 – перенаправление на маршрут внутри javascript-кода Blade template Переход от prefork MPM к рабочему MPM + php-fpm на ubuntu PHP cURL не хранит файл cookie сеанса … Как это исправить? Является ли это безопасным способом вставки данных формы в базу данных MySQL? CSS не привязывается к шаблону HTML-страницы PHP SoapClient не может работать с https WS

Буферизация вывода PHP в командной строке

У меня есть PHP-скрипт, который я хочу запустить в командной строке. Этот скрипт, помимо прочего, должен загрузить файл PHP, содержащий как PHP, так и HTML-контент, и получить полученный результат из этого файла.

Этот код выполняет именно то, что мне нужно, но не при запуске из командной строки:

<?php // ... if(file_exists($content_file)) { ob_start(); include($content_file); $content = ob_get_contents(); ob_end_clean(); } ?> 

При запуске в браузере мой скрипт получает обработанный вывод файла PHP через include () и сохраняет вывод в $ content.

Однако, когда я запускаю этот скрипт в командной строке, содержимое файла PHP повторяется, а $ content никогда не устанавливается.

Я искал документацию, но ничего не работает. Вызов ini_set ('implicit_flush', false) не имеет никакого эффекта, и ob_implicit_flush (0);

Есть предположения?

Я не могу дублировать эту проблему, используя PHP 5.3.

 [charles@lobotomy ~]$ cat includeme.php <?php echo "Oh hi!\n"; ?> I am an include! [charles@lobotomy ~]$ cat includehim.php <?php $content_file = './includeme.php'; if(file_exists($content_file)) { ob_start(); include($content_file); $content = ob_get_contents(); ob_end_clean(); } [charles@lobotomy ~]$ php includehim.php [charles@lobotomy ~]$ 

И в интерактивной подсказке:

 [charles@lobotomy ~]$ php -a Interactive shell php > $content_file = './includeme.php'; php > if(file_exists($content_file)) { php { ob_start(); php { include($content_file); php { $content = ob_get_contents(); php { ob_end_clean(); php { } php > php > echo $content; Oh hi! I am an include! php > exit;