如何在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