0

我有使用 Zend_Http_Client 的 PHP 脚本。

脚本做两件事:

  • “扩展”缩短的网址 + 获取 MIME 类型的网址
  • 获取 text/html url 的 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,如果 MIME=text/html,第二个是获取 HTML,但是发出 2 个不同的请求太昂贵了。

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

4

1 回答 1

0

如果您遵循协议,最佳实践是先发送 HEAD 请求,检查预期的内容类型和大小,然后发送 GET 请求。但是,这对您来说可能还不够,并且可能并非所有服务器都支持。

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

于 2013-02-05T14:56:51.683 回答