Heim  >  Artikel  >  Backend-Entwicklung  >  So beschleunigen Sie das Abrufen der Bildgröße in PHP: Ist file_get_contents die Lösung?

So beschleunigen Sie das Abrufen der Bildgröße in PHP: Ist file_get_contents die Lösung?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 16:47:25991Durchsuche

How to Speed Up Image Size Retrieval in PHP: Is file_get_contents the Solution?

So ermitteln Sie blitzschnell die Bildgröße in PHP mit file_get_contents

Das Abrufen von Bildabmessungen für zahlreiche Remote-Bilder kann eine zeitaufwändige Aufgabe sein. insbesondere mit getimagesize. Hier ist ein alternativer Ansatz, der file_get_contents nutzt, um Bildgrößen schnell abzurufen:

Verwenden einer benutzerdefinierten PHP-Funktion

Die folgende ranger()-Funktion liest einen bestimmten Bytebereich von einer Fernbedienung Bild, das eine schnelle Größenextraktion ermöglicht:

<code class="php">function ranger($url){
    $headers = array(
    "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>

Bildgröße extrahieren

Sobald die Bilddaten erhalten wurden, können Sie ihre Abmessungen mit imagecreatefromstring() bestimmen und erstellen- in Bildanalysefunktionen:

<code class="php">$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);</code>

Leistungsmessung

Mit dieser Methode ist der Prozess zur Ermittlung der Bildabmessungen deutlich schneller:

<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>

Testergebnisse

Das Beispielbild brauchte nur 0,20859 Sekunden, um seine Abmessungen abzurufen. Das Laden von 32 KB Daten hat sich bei diesem Ansatz als effektiv erwiesen. Durch die Anwendung dieser Technik können Sie schnell Bildgrößen von Remote-Bildern ermitteln und so die Engpässe minimieren, die normalerweise bei getimagesize auftreten.

Das obige ist der detaillierte Inhalt vonSo beschleunigen Sie das Abrufen der Bildgröße in PHP: Ist file_get_contents die Lösung?. 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