Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Leistung von getimagesize für Remote-Bilder optimieren?
Beschleunigung der getimagesize-Leistung für Remote-Bilder
Getimagesize wird häufig verwendet, um die Abmessungen von Remote-Bildern zu bestimmen. Bei der Verarbeitung einer großen Anzahl von Bildern kann dies jedoch zeitaufwändig werden.
Ein schnellerer Ansatz besteht darin, einen kleinen Teil der Bilddaten mit file_get_contents abzurufen und ihn zu analysieren, um die Größe abzurufen. Diese Methode vermeidet den Aufwand, das gesamte Bild zu laden.
Hier ist ein Beispiel für die Implementierung dieser Technik mithilfe der Ranger-Funktion:
<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>
Um die verbesserte Leistung zu demonstrieren, betrachten Sie das folgende Beispiel :
<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>
In Tests führte das Abrufen der ersten 32 KB Bilddaten zu beeindruckenden Leistungssteigerungen:
640 x 480 (0.20859s)
Dieser Ansatz reduziert den Zeitaufwand für die Bestimmung der Größe von Remote-Bildern erheblich. Damit ist es ideal für die Verarbeitung großer Datenmengen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Leistung von getimagesize für Remote-Bilder optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!