我使用这样的代码:
//section with the important stuff for the client ob_start(); echo "Blah... Random Content" . rand(1,1000); $size = ob_get_length(); header("Content-Length: $size"); header('Connection: close'); ob_end_flush(); ob_flush(); flush(); //all the following output/script running time should be ignored by the client (file_get_contents()) sleep(10); echo "long action completed";
输出一些内容并随后运行耗时的后台作业。
在另一个文件中,我试图访问第一个脚本的数据,而无需等待后台作业完成。
不幸的是,这对我不起作用:
$content = file_get_contents("http://some-address/thescript.php"); echo $content;
因为它不关注Content-long标头。不过在浏览器中,整件事都可以正常工作。有什么建议吗?谢谢。
修复了它。以防有人有同样的问题:
$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;