Heim > Artikel > Backend-Entwicklung > Wie kann ich die Remote-Bilddimensionsextraktion mit der Funktion getimagesize von PHP beschleunigen?
Beschleunigung von getimagesize in PHP für die Extraktion von Remote-Bildabmessungen
Das Ermitteln der Abmessungen von Remote-Bildern mit der Funktion getimagesize von PHP kann bei großen Bildsätzen träge sein . In diesem Artikel wird ein alternativer Ansatz untersucht, der file_get_contents nutzt, um einen Teil der Binärdaten aus Bildern zur Größenanalyse abzurufen.
Um Bildabmessungen mit dieser Methode zu extrahieren, implementieren Sie die folgende 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>
Führen Sie als Nächstes den folgenden Code aus, um die Abmessungen eines Remote-Bildes abzurufen:
<code class="php">$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg"; $raw = ranger($url); $im = imagecreatefromstring($raw); $width = imagesx($im); $height = imagesy($im); echo $width." x ".$height." ({$stop}s)";</code>
In unserem Testfall lieferte dieser Ansatz die Abmessungen eines Remote-Bildes in weniger als 0,2 Sekunden.
Hinweis: Passen Sie den Bereichsparameter (im „Range“-Header) an, um mehr oder weniger Binärdaten aus dem Bild abzurufen. Experimentieren Sie mit verschiedenen Bereichen, um die Leistung für Ihre spezifische Anwendung zu optimieren.
Das obige ist der detaillierte Inhalt vonWie kann ich die Remote-Bilddimensionsextraktion mit der Funktion getimagesize von PHP beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!