Maison >développement back-end >tutoriel php >Comment accélérer la récupération de la taille des images en PHP : file_get_contents est-il la 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!