」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 PHP 中加快圖片大小檢索:file_get_contents 是解決方案嗎?

如何在 PHP 中加快圖片大小檢索:file_get_contents 是解決方案嗎?

發佈於2024-11-05
瀏覽:642

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

如何在PHP 中使用file_get_contents 快速獲取圖像尺寸

獲取大量遠端圖像的圖像尺寸可能是一項耗時的任務,特別是使用getimagesize。這是利用file_get_contents 快速擷取影像大小的另一種方法:

使用自訂PHP 函數

以下ranger() 函數從遠端讀取特定位元組範圍影像,啟用快速尺寸擷取:

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;
}

提取影像尺寸

取得影像資料後,您可以使用imagecreatefromstring() 和內建影像分析函數確定其尺寸:

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

效能測量

使用此方法,取得影像尺寸的過程明顯較快:

$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)";

測試結果

範例影像擷取僅花費0.20859 秒它的尺寸。事實證明,載入 32KB 的資料在這種方法中是有效的。透過應用此技術,您可以快速取得遠端影像的影像大小,從而最大限度地減少 getimagesize 通常遇到的瓶頸。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3