Maison >développement back-end >tutoriel php >Comment puis-je optimiser les performances de getimagesize pour les images distantes ?
Accélération des performances de getimagesize pour les images distantes
Getimagesize est souvent utilisé pour déterminer les dimensions des images distantes. Cependant, lorsqu'il s'agit de traiter un grand nombre d'images, cela peut prendre beaucoup de temps.
Une approche plus rapide consiste à récupérer une petite partie des données de l'image à l'aide de file_get_contents et à l'analyser pour récupérer la taille. Cette méthode évite la surcharge liée au chargement de l'image entière.
Voici un exemple de mise en œuvre de cette technique à l'aide de la fonction ranger :
<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>
Pour démontrer les performances améliorées, considérons l'exemple suivant :
<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>
Lors des tests, la récupération des 32 premiers Ko de données d'image a fourni des gains de performances impressionnants :
640 x 480 (0.20859s)
Cette approche réduit considérablement le temps nécessaire pour déterminer la taille des images distantes, ce qui le rend idéal pour traiter de grands ensembles de données.
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!