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

Linda Hamilton
Libérer: 2024-10-30 16:47:25
original
990 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!