"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-05
Parcourir:265

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'un image, permettant une extraction rapide de la taille :

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

Extraction de la taille de l'image

Une fois les données d'image obtenues, vous pouvez déterminer leurs dimensions à l'aide de imagecreatefromstring() et des fonctions d'analyse d'image intégrées :

$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);

Mesure des performances

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

$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)";

Résultats des tests

L'exemple d'image n'a pris que 0,20859 secondes pour être récupéré 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3