加速遠端影像的 getimagesize 效能
Getimagesize 通常用於決定遠端影像的尺寸。然而,在處理大量影像時,它可能會變得非常耗時。
更快的方法是使用 file_get_contents 取得一小部分影像資料並對其進行分析以檢索大小。此方法避免了載入整個映像的開銷。
以下是如何使用ranger 函數實現此技術的範例:
<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中文網其他相關文章!