提问者:小点点

PHPfile_get_contents()跟随内容长度标头


我使用这样的代码:

//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标头。不过在浏览器中,整件事都可以正常工作。有什么建议吗?谢谢。


共1个答案

匿名用户

修复了它。以防有人有同样的问题:


$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;