У меня есть 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;