リクエストヘッダー情報を表示し、リモート画像サイズを取得する PHP メソッド_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:18:41
オリジナル
1038 人が閲覧しました

リモート画像のサイズを取得したい場合、一般的なアプローチは、最初にリモート画像のコンテンツを取得してから、strlen を使用して長さを計算することです。この方法では、計算する前に画像をダウンロードする必要があります。画像が大きいとネットワーク送信に時間がかかり、明らかに効率が悪くなります。著者は主に http ヘッダー情報を使用して効率を向上させる方法を提供します。

Web ページにアクセスすると、サーバーはリクエスト ヘッダー情報を返します。Content-Length は、リクエストされた Web ページのコンテンツ サイズを示します。リクエストが画像に対するものである場合、Content-Length は画像のサイズを示します。これによると、返されたヘッダー情報を取得するには、head リクエストを送信するだけで済みます。 PHP では、fsockopen メソッドを通じてヘッダー情報を取得できます。コードは次のとおりです:

コードをコピーします コードは次のとおりです:

$fp = fsockopen("www.baidu.com", 80, $errno, $errstr, 30);
if ($fp) {
//リクエストはこちら HEADに設定するだけです
$out = "HEAD /img/baidu_sylogo1.gif HTTP/1.1rn";
$out .= "ホスト: www.baidu.comrn";
$out .= "接続: Closernrn";
fwrite($fp, $out);
while (!feof($fp)) {
$header = fgets($fp);
if (stripos($header, 'Content-Length') != = false) { $ Size = Trim (substr ($ header, strpos ($ header, ':': ') + 1));
echo $size
}}
fclose ($ fp); ;
}



GET リクエストを開始するのと同じように、リクエスト タイプ GET を HEAD に設定するだけです。要求されたホストとパスを必要なものに変更するだけです。
概要:

PHP で get_headers を使用してヘッダー情報を取得することもできますが、作成者はこの関数をテストしており、これは GET リクエストです。詳細については、「PHP 関数 get_headers は HEAD リクエストですか、それとも GET リクエストですか」を参照してください。

さらに、一部のサーバーは HEAD リクエストをブロックする場合があります。ブロックされている場合は、GET リクエストのみを使用できます。これを行いたい場合は、既製の関数 getimagesize を直接使用できます。

http://www.bkjia.com/PHPjc/621654.html

www.bkjia.com

http://www.bkjia.com/PHPjc/621654.html技術記事リモート画像のサイズを取得したい場合、一般的なアプローチは、最初にリモート画像のコンテンツを取得し、次に strlen を使用して長さを計算することです。この方法では、画像をダウンロードしてから...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート