0

OK見て:

私がやりたいことは次のとおりです(これは例です):

  1. $ output = require( "script_execution.php");
  2. echo str_replace( "hello"、 "bye"、$ output);

私が持っている解決策:

(script_execution.php)

<?php
   echo "hello world....";
?>

(solution.php)

<?php

  ob_start();
  require( "script_execution.php" );
  $output = ob_get_contents();
  ob_end_clean();
  echo $output; // WOW!!! but.......................

?>

(出力)

さようなら世界...

問題は次のとおりです。このソリューションは正常に機能しますが、¿「script_execution.php」に(exit;)が含まれているとどうなりますか?3番目の命令の前に実行中のすべての実行が停止されるため、最終出力は正しくありません。

¿スクリプト(solution.php)を終了せずに「script_execution.php」の最終出力を取得するにはどうすればよいですか?ご存知のように、script_execution.phpの最終出力(exit;命令とは無関係)は次のとおりです。

こんにちは世界....

ありがとう!(多分スレッドを使用していますか??)

4

1 に答える 1

2

includeまたはを使用してスクリプトを評価し、requireそれがを呼び出すexit()と、スクリプトは終了します。

私が見る2つのオプションがあります:

  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 に答える