Mempercepatkan Prestasi getimagesize untuk Imej Jauh
Getimagesize selalunya digunakan untuk menentukan dimensi imej jauh. Walau bagaimanapun, apabila berurusan dengan sejumlah besar imej, ia boleh memakan masa.
Pendekatan yang lebih pantas melibatkan pengambilan sebahagian kecil data imej menggunakan file_get_contents dan menganalisisnya untuk mendapatkan semula saiz. Kaedah ini mengelakkan overhed memuatkan keseluruhan imej.
Berikut ialah contoh cara melaksanakan teknik ini menggunakan fungsi renjer:
<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>
Untuk menunjukkan prestasi yang lebih baik, pertimbangkan contoh berikut :
<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>
Dalam ujian, mengambil 32 KB pertama data imej memberikan peningkatan prestasi yang mengagumkan:
640 x 480 (0.20859s)
Pendekatan ini mengurangkan dengan ketara masa yang diperlukan untuk menentukan saiz imej jauh, menjadikannya ideal untuk memproses set data yang besar.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengoptimumkan prestasi getimagesize untuk imej jauh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!