首頁  >  文章  >  後端開發  >  如何在 PHP 中加快圖片大小檢索:file_get_contents 是解決方案嗎?

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

Linda Hamilton
Linda Hamilton原創
2024-10-30 16:47:25992瀏覽

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() 函數從遠端讀取特定位元組範圍影像,實現快速尺寸擷取:

<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() 確定其尺寸,並內建-影像分析函數中:

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn