Maison  >  Article  >  développement back-end  >  Comment accélérer la récupération de la taille des images en PHP : file_get_contents est-il la solution ?

Comment accélérer la récupération de la taille des images en PHP : file_get_contents est-il la solution ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 16:47:25991parcourir

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

Comment obtenir la taille d'une image rapidement en PHP à l'aide de file_get_contents

Obtenir les dimensions d'une image pour de nombreuses images distantes peut être une tâche fastidieuse, surtout en utilisant getimagesize. Voici une approche alternative qui exploite file_get_contents pour récupérer rapidement les tailles d'image :

Utilisation d'une fonction PHP personnalisée

La fonction ranger() suivante lit une plage d'octets spécifique à partir d'une télécommande image, permettant une extraction rapide de la taille :

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

Extraction de la taille de l'image

Une fois les données de l'image obtenues, vous pouvez déterminer ses dimensions à l'aide de imagecreatefromstring() et construit- dans les fonctions d'analyse d'image :

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

Mesure des performances

Grâce à cette méthode, le processus d'obtention des dimensions de l'image est nettement plus rapide :

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

Résultats des tests

L'exemple d'image n'a mis que 0,20859 seconde pour récupérer ses dimensions. Le chargement de 32 Ko de données s'est avéré efficace dans cette approche. En appliquant cette technique, vous pouvez obtenir rapidement la taille des images distantes, minimisant ainsi les goulots d'étranglement généralement rencontrés avec getimagesize.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn