Zend_Http_Client:如何“不下载大文件”

时间:2013-02-03 21:14:36

标签: php zend-framework frameworks zend-http-client

我有使用Zend_Http_Client的PHP脚本。

脚本做两件事:

  • “展开”缩短的网址+获取mime-type的网址
  • 获取text / html网址的HTML内容

我使用这个简单的代码:

$client = new Zend_Http_Client($url);
$response = $client->request('GET');
$headers = $response->getHeaders();
$body = $response->getBody();

除了URL包含100Mb MP3文件的情况外,一切正常。我只需要HTML内容,而不是MP3。所以我想将Zend_Http_Client配置为“不要下载超过2Mb的文件”。有可能吗?

是的,我可以发出2个请求 - 首先是获取URL的MIME,第二个是获取HTML,如果MIME = text / html,但是要花费太多而不能发出2个不同的请求。

所以,问题:当已经下载的内容权重超过2Mb时,如何检查下载内容大小并停止下载而不会出错?

1 个答案:

答案 0 :(得分:0)

遵循协议的最佳做法是首先发送HEAD请求,检查预期的内容类型和大小,然后发送GET请求。但是,这可能不适合您,并且可能不受所有服务器的支持。

或者,您可以使用流响应支持在实际下载正文之前中止下载。请参阅http://framework.zend.com/manual/1.12/en/zend.http.client.advanced.html#zend.http.client.streaming

上的示例#11