Maison  >  Article  >  développement back-end  >  Comment puis-je accélérer l'extraction des dimensions d'une image à distance avec la fonction getimagesize de PHP ?

Comment puis-je accélérer l'extraction des dimensions d'une image à distance avec la fonction getimagesize de PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 01:25:03435parcourir

How can I speed up remote image dimension extraction with PHP's getimagesize function?

Accélération de getimagesize en PHP pour l'extraction des dimensions d'images à distance

La détermination des dimensions des images distantes à l'aide de la fonction getimagesize de PHP peut être lente pour les grands ensembles d'images . Cet article explore une approche alternative qui exploite file_get_contents pour récupérer une partie des données binaires des images à des fins d'analyse de taille.

Pour extraire les dimensions de l'image à l'aide de cette méthode, implémentez la fonction suivante :

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

Ensuite, exécutez le code suivant pour récupérer les dimensions d'une image distante :

<code class="php">$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

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

echo $width." x ".$height." ({$stop}s)";</code>

Dans notre scénario de test, cette approche a donné les dimensions d'une image distante en moins de 0,2 seconde.

Remarque : Ajustez le paramètre range (dans l'en-tête "Range") pour récupérer des données plus ou moins binaires de l'image. Expérimentez avec différentes gammes pour optimiser les performances de votre application spécifique.

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