リモート画像のサイズを取得したい場合、一般的なアプローチは、最初にリモート画像のコンテンツを取得してから、strlen を使用して長さを計算することです。この方法では、計算する前に画像をダウンロードする必要があります。画像が大きいとネットワーク送信に時間がかかり、明らかに効率が悪くなります。著者は主に http ヘッダー情報を使用して効率を向上させる方法を提供します。
Web ページにアクセスすると、サーバーはリクエスト ヘッダー情報を返します。Content-Length は、リクエストされた Web ページのコンテンツ サイズを示します。リクエストが画像に対するものである場合、Content-Length は画像のサイズを示します。これによると、返されたヘッダー情報を取得するには、head リクエストを送信するだけで済みます。 PHP では、fsockopen メソッドを通じてヘッダー情報を取得できます。コードは次のとおりです:
PHP で get_headers を使用してヘッダー情報を取得することもできますが、作成者はこの関数をテストしており、これは GET リクエストです。詳細については、「PHP 関数 get_headers は HEAD リクエストですか、それとも GET リクエストですか」を参照してください。
さらに、一部のサーバーは HEAD リクエストをブロックする場合があります。ブロックされている場合は、GET リクエストのみを使用できます。これを行いたい場合は、既製の関数 getimagesize を直接使用できます。
http://www.bkjia.com/PHPjc/621654.html
www.bkjia.com