Maison >développement back-end >tutoriel php >Comment puis-je accélérer l'extraction des dimensions d'une image à distance avec la fonction getimagesize de PHP ?
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!