我有使用Zend_Http_Client的PHP脚本。
脚本做两件事:
我使用这个简单的代码:
$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时,如何检查下载内容大小并停止下载而不会出错?
答案 0 :(得分:0)
遵循协议的最佳做法是首先发送HEAD请求,检查预期的内容类型和大小,然后发送GET请求。但是,这可能不适合您,并且可能不受所有服务器的支持。
或者,您可以使用流响应支持在实际下载正文之前中止下载。请参阅http://framework.zend.com/manual/1.12/en/zend.http.client.advanced.html#zend.http.client.streaming
上的示例#11