0

Zend_Http_Clientを使用したPHPスクリプトがあります。

スクリプトは2つのことを行います:

  • 短縮URLを「拡張」+mimeタイプのURLを取得
  • text /htmlurlsのHTMLコンテンツを取得する

私はこの単純なコードを使用します:

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

たとえば、URLに100MbのMP3ファイルが含まれている場合を除いて、すべてOKです。MP3ではなくHTMLコンテンツのみが必要です。そこで、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 に答える