ホームページ > バックエンド開発 > PHPチュートリアル > PHP で画像サイズの取得を高速化する方法: file_get_contents が解決策ですか?

PHP で画像サイズの取得を高速化する方法: file_get_contents が解決策ですか?

Linda Hamilton
リリース: 2024-10-30 16:47:25
オリジナル
1080 人が閲覧しました

How to Speed Up Image Size Retrieval in PHP: Is file_get_contents the Solution?

file_get_contents を使用して PHP で画像サイズを超高速で取得する方法

多数のリモート画像の画像サイズを取得するのは時間のかかる作業です。特に getimagesize を使用します。ここでは、file_get_contents を利用して画像サイズを迅速に取得する別のアプローチを示します。

カスタム PHP 関数の使用

次の ranger() 関数は、リモートから特定のバイト範囲を読み取ります。画像、迅速なサイズ抽出を可能にする:

<code class="php">function ranger($url){
    $headers = array(
    "Range: bytes=0-32768"
    );

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}</code>
ログイン後にコピー

画像サイズの抽出

画像データが取得されたら、imagecreatefromstring() と build-画像解析関数:

<code class="php">$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);</code>
ログイン後にコピー

パフォーマンス測定

この方法を使用すると、画像の寸法を取得するプロセスが大幅に高速化されます:

<code class="php">$start = microtime(true);

$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

$width = imagesx($im);
$height = imagesy($im);

$stop = round(microtime(true) - $start, 5);

echo $width." x ".$height." ({$stop}s)";</code>
ログイン後にコピー

テスト結果

サンプル画像の寸法の取得には、わずか 0.20859 秒かかりました。このアプローチでは、32KB のデータをロードすることが効果的であることが証明されています。この手法を適用すると、リモート イメージのイメージ サイズを迅速に取得でき、getimagesize でよく発生するボトルネックを最小限に抑えることができます。

以上がPHP で画像サイズの取得を高速化する方法: file_get_contents が解決策ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート