ホームページ > バックエンド開発 > PHPチュートリアル > リモート イメージの getimagesize のパフォーマンスを最適化するにはどうすればよいですか?

リモート イメージの getimagesize のパフォーマンスを最適化するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-29 08:06:30
オリジナル
432 人が閲覧しました

How can I optimize getimagesize performance for remote images?

リモート イメージの getimagesize パフォーマンスの高速化

Getimagesize は、リモート イメージのサイズを決定するためによく使用されます。ただし、大量の画像を扱う場合は、時間がかかることがあります。

より高速なアプローチには、file_get_contents を使用して画像データの一部を取得し、それを分析してサイズを取得することが含まれます。このメソッドは、画像全体をロードするオーバーヘッドを回避します。

レンジャー関数を使用してこの手法を実装する方法の例を次に示します。

<code class="php">function ranger($url) {
    $headers = ["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>
ログイン後にコピー

パフォーマンスの向上を実証するには、次の例を検討してください。 :

<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>
ログイン後にコピー

テストでは、イメージ データの最初の 32 KB をフェッチすると、パフォーマンスが大幅に向上しました。

640 x 480 (0.20859s)
ログイン後にコピー

このアプローチにより、リモート イメージのサイズを決定するのに必要な時間が大幅に短縮されます。大規模なデータセットの処理に最適です。

以上がリモート イメージの getimagesize のパフォーマンスを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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