0

好的看:

我想要做的是以下(这是一个例子):

  1. $output = 要求(“script_execution.php”);
  2. 回声str_replace(“你好”,“再见”,$输出);

我有的解决方案:

(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;)会发生什么?最终输出将是错误的,因为在第三条指令之前,所有执行运行都停止了。

¿ 在不退出我的脚本 (solution.php) 的情况下,如何获得“script_execution.php”的最终输出?因为如您所知,script_execution.php 的最终输出(独立于 exit; 指令)是:

你好世界....

谢谢!(也许使用线程??)

4

1 回答 1

2

如果您使用includeor评估脚本require,并且它调用exit(),您的脚本将终止。

我看到你有两个选择:

  1. 在调用时使用关闭处理程序register_shutdown_function()运行exit(),然后在函数中捕获输出缓冲区并打印它。

  2. script_execution.php通过向您的服务器发出 HTTP 请求来执行,类似于:

    $output = file_get_contents( 'http://www.yoursite.com/script_execution.php');
    
于 2013-02-08T04:06:36.223 回答