我需要获取远程文件的内容,但要发送一些标头,其中一个是“连接:保持活动”标头...所以我通过简单调用 file_get_contents() 来尝试它,就像这样:
<?php
$sfheaders="Cache-Control:max-age=0
Connection:keep-alive";
$opts = array(
'http' => array(
'method' => "GET",
'header' => $sfheaders
)
);
$context = stream_context_create($opts);
$url="http://somedomain.com/to.php";
$file = file_get_contents($url, false, $context);
?>
...代码有效,但 file_get_contents 需要 15 秒才能获取数据!看起来 file_get_contents() 在连接关闭后完成,但我希望它在数据传输后完成。如果我删除 keep-alive 标头会更快,但这次我需要在连接保持活动状态时获取数据。我猜这对于 file_get_contents 是不可能的,所以....
有没有办法用 cURL 或其他东西来做到这一点?
编辑:让我更准确地说,必须将“Connection:keep-alive”标头发送到我尝试访问的特定服务器,因为它会检查该标头,如果未发送,则没有数据发送到我!知道了?