Curl 有很多选项可以让我的用例更轻松地从另一台服务器请求数据。我的脚本类似于代理,到目前为止它正在从另一台服务器请求数据,一旦结果数据完成,它就会立即发送到客户端。
proxy.php 从外部服务器下载 xyz
当下载完成100%时,会输出数据
现在我想知道 2 和 3 是否也可以并行完成(使用 php5-curl),就像“代理流”一样即时转发数据而无需等待最后一行。
如果文件大小平均为 20MB,则差异很大。
curl中有这个选项吗?
Curl 有很多选项可以让我的用例更轻松地从另一台服务器请求数据。我的脚本类似于代理,到目前为止它正在从另一台服务器请求数据,一旦结果数据完成,它就会立即发送到客户端。
proxy.php 从外部服务器下载 xyz
当下载完成100%时,会输出数据
现在我想知道 2 和 3 是否也可以并行完成(使用 php5-curl),就像“代理流”一样即时转发数据而无需等待最后一行。
如果文件大小平均为 20MB,则差异很大。
curl中有这个选项吗?
看看http://www.php.net/manual/en/function.curl-setopt.php#26239
类似的东西(未测试):
function myProgressFunc($ch, $str){
echo $str;
return strlen($str);
}
curl_setopt($ch, CURLOPT_WRITEFUNCTION, "myProgressFunc");
这是实际流式传输文件而不是等待完整文件缓冲的代码。
$url = YOUR_URL_HERE;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
echo $data;
ob_flush();
flush();
return strlen($data);
});
curl_exec($ch);
curl_close($ch);