ОК, смотри:
Я хочу сделать следующее (это пример):
- $ output = require ("script_execution.php");
- echo str_replace («привет», «пока», $ output);
Решение у меня есть:
(script_execution.php)
<?php
echo "hello world....";
?>
(решение.php)
<?php
ob_start();
require( "script_execution.php" );
$output = ob_get_contents();
ob_end_clean();
echo $output; // WOW!!! but.......................
?>
(вывод)
пока, мир ....
Вот проблема: это решение работает нормально, но Что произойдет, если "script_execution.php" имеет (exit;) ??? Окончательный вывод будет неправильным, потому что перед третьей инструкцией все выполнение будет остановлено.
¿Что я могу сделать, чтобы получить окончательный результат "script_execution.php" без выхода из моего сценария (solution.php)? Потому что, как вы знаете, окончательный вывод script_execution.php (независимо от инструкции выхода):
привет, мир ....
Спасибо! (возможно, используя потоки ??)
1 ответ
Если вы оцениваете сценарий с помощью include
или require
, и он вызывает exit()
, ваш сценарий завершается.
У меня есть два варианта, которые я вижу:
Использование обработчика завершения работы с
register_shutdown_function()
для запуска, когда Вызываетсяexit()
, затем захватывает выходной буфер внутри функции и распечатывает его.Выполняйте только
script_execution.php
, отправив HTTP-запрос на ваш сервер, примерно так:$output = file_get_contents( 'http://www.yoursite.com/script_execution.php');
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.