如何在PHP 5.2之前下载带有“Transfer-Encoding:chunked”的页面

时间:2011-07-04 13:38:26

标签: php filter stream chunked

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

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

3 个答案:

答案 0 :(得分:1)

我建议使用cURL。它支持HTTP / 1.1,这是可靠接收分块数据的必要条件。 PHP核心函数如file_get_contents之类的不支持HTTP / 1.1 do not support chunked data before PHP 5.3.0

修改

重新澄清。谢谢@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);

答案 1 :(得分:0)

使用curl扩展名。

或者对于简单的GET请求,只需使用内置包装器(例如file_get_contents

答案 2 :(得分:0)

使用ext/curl下载文件。