3

私はこのようなコードを使用しています:

//クライアントにとって重要なものを含むセクション
ob_start();
echo"Blah...ランダムコンテンツ"。rand(1,1000);
$ size = ob_get_length();
header( "Content-Length:$ size");
header('接続:閉じる');
ob_end_flush();
ob_flush();
流す();
//以下のすべての出力/スクリプトの実行時間は、クライアントによって無視される必要があります(file_get_contents())
sleep(10);
エコー「長いアクションが完了しました」;

一部のコンテンツを出力し、その後、時間のかかるバックグラウンドジョブを実行します。
他のファイルでは、バックグラウンドジョブが終了するのを待たずに、最初のスクリプトのデータにアクセスしようとしています。
残念ながら、これは私にはうまくいきません:

$ content = file_get_contents( "http://some-address/thescript.php");
エコー$コンテンツ;

Content-lengthヘッダーに注意を払わないためです。ただし、ブラウザではすべてが正常に機能します。助言がありますか?ありがとう。

4

1 に答える 1

2

修正しました。誰かが同じ問題を抱えている場合:


$url = "http://some-adress/test.php";
$headers = get_headers($url, 1);
$content_length = $headers["Content-Length"];
$content = file_get_contents($url, NULL, NULL, NULL, $content_length);
echo $content;


于 2012-06-07T23:44:35.810 に答える