如何重定向PHP脚本的输出DURING执行?

时间:2010-04-17 03:33:45

标签: php redirect

有没有办法重定向正在执行的PHP脚本的输出?

当然,通过命令行启动脚本时这很简单。但是,在脚本启动之后是如何完成的?

注意:我需要捕获语法错误以及以及

4 个答案:

答案 0 :(得分:1)

即使在命令行脚本中也可以使用PHP的output control

echo "123\n";
ob_start();
echo "456\n";
$s = ob_get_contents();
ob_end_clean();
echo "*$s";

答案 1 :(得分:1)

如果要捕获解析器错误,则需要:

  1. 确保display_errorsOn

  2. 设置error_prepend_stringerror_append_string

  3. 从您可能正在执行的每个PHP文件之前运行的auto_prepend文件中调用ob_start

  4. 像往常一样使用set_error_handler,并通过指定的输出缓冲区进行回调筛选,查找自定义的error_prepend_string和error_append_string。如果你找到它,那么你可以在任何你想要的地方分流输出。如果你不这样做,那么就把它放在通常的任何地方。

  5. 大部分可以通过ini_set调用来实现,但需要在php.ini中指定auto_prepend文件。

答案 2 :(得分:0)

语法错误将输出到STDERR,而不是STDOUT。确保你还在你的pipline中重定向STDERR ......

./myscript | myfile.php &> out.txt

答案 3 :(得分:-2)