Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Leistung von getimagesize für Remote-Bilder optimieren?

Wie kann ich die Leistung von getimagesize für Remote-Bilder optimieren?

Susan Sarandon
Susan SarandonOriginal
2024-10-29 08:06:30405Durchsuche

How can I optimize getimagesize performance for remote images?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn