Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何下载带有“的页面”;传输编码:分块;PHP5.2之前的版本_Php_Filter_Stream_Chunked - Fatal编程技术网

如何下载带有“的页面”;传输编码:分块;PHP5.2之前的版本

如何下载带有“的页面”;传输编码:分块;PHP5.2之前的版本,php,filter,stream,chunked,Php,Filter,Stream,Chunked,正在尝试从XML语言检索页面。然而,检索是不可靠的,因为它是分块传输编码。如何正确下载此页面以进行进一步编辑 我不能使用PHP流过滤器,因为我的PHP版本只有5.2。使用扩展名 或者对于简单的GET请求,只需使用内置包装器(例如,文件\u GET\u内容)用于下载文件 我建议使用。它支持HTTP/1.1,这是可靠地接收分块数据所必需的。PHP核心函数如file\u get\u contents等不支持HTTP/1.1 编辑 重新措辞以澄清。谢谢你,@troelskn 编辑 使用cURL的示例:

正在尝试从XML语言检索页面。然而,检索是不可靠的,因为它是分块传输编码。如何正确下载此页面以进行进一步编辑

我不能使用PHP流过滤器,因为我的PHP版本只有5.2。

使用扩展名

或者对于简单的GET请求,只需使用内置包装器(例如,
文件\u GET\u内容

用于下载文件

我建议使用。它支持HTTP/1.1,这是可靠地接收分块数据所必需的。PHP核心函数如
file\u get\u contents
等不支持HTTP/1.1

编辑

重新措辞以澄清。谢谢你,@troelskn

编辑

使用cURL的示例:

$rCURL = curl_init();

curl_setopt($rCURL, CURLOPT_URL, 'http://www.example.com/file_to_retrieve.xml');
curl_setopt($rCURL, CURLOPT_HEADER, 0);
curl_setopt($rCURL, CURLOPT_RETURNTRANSFER, 1);

$aData = curl_exec($rCURL);

curl_close($rCURL);

var_dump($aData);

您如何尝试检索该文件?“从xml语言检索页面”@zneak我将发布新消息。函数readfile_chunked($filename,$type='array'){$chunk_array=array();$chunksize=1*(1024*1024);$buffer='';$handle=fopen($filename,'rb');if($handle==false){return false;}while(!feof($handle)){switch($type){case'array':$lines[]=fgets($handle,$chunksize);break;case'string':$lines=fread($handle,$chunksize);break;}}fclose($handle);返回$line;}foreach(readfile_chunked(')作为$key=>$value){$res.=$value;}file_put_contents('file.xml',$res)@Tomalak Geret'kal是的,这是带有电视的xml文件。@trymerson2010:“带有电视的xml文件”?!?!?!关于http/1.1在
5.3
之前不受支持的说法,你有参考资料吗?@troelskn:argl,我应该更清楚这一点。我不是说HTTP/1.1在5.3.0之前不受支持,但是(请参阅Changelog)。您可能已经了解了一些情况。流包装器
协议\u版本
(或上下文设置)可能配置错误。或者OPs服务器不完全兼容,即使php用户代理请求使用/1.0(chunked确实是1.1而不是1.0的要求),也会使用/1.1回复。知道如何使用cURL或任何其他方法获取此文件吗?@trymerson2010:更新了我的答案。comand如何使用cURL?因为连wget都在下载文件,我不建议使用curl命令行,而是使用php扩展;这就是为什么我添加了一个指向相应手册部分的链接