Dans le modèle de galerie photo (CMSMS) j'utilise le code suivant :
<ul> {foreach from=$images item=image} {$imagesize=getimagesize($image->file)} <li> name : {$image->file} <em>width :</em> {$imagesize[0]}- <em>height:</em> {$imagesize[1]} </li> {/foreach} </ul>
Chaque fois que la galerie est chargée, les dimensions (largeur et hauteur) de certaines images seulement sont récupérées, parfois toutes. C'est complètement aléatoire et pas forcément la même image. Évidemment, j'ai essayé différentes images provenant de différentes sources.
Je reçois une erreur d'échec d'Open Stream : connexion refusée. Ctrl+F5 donne au hasard
Il s'agit d'un hébergement mutualisé (OVH).
J'ai créé un fichier php et un répertoire d'images (beaucoup d'entre eux) à la racine du site.
<?php function walkDir($path = null) { if(empty($path)) { $d = new DirectoryIterator('./testqdima'); } else { $d = new DirectoryIterator($path); } foreach($d as $f) { if( $f->isFile() && preg_match("/(\.gif|\.png|\.jpe?g)$/", $f->getFilename()) ) { list($w, $h) = getimagesize($f->getPathname()); echo "<p>".$f->getFilename() . " Dimensions: " . $w . ' ' . $h . "</p>"; } elseif($f->isDir() && $f->getFilename() != '.' && $f->getFilename() != '..') { walkDir($f->getPathname()); } } } walkDir(); ?>
Cela fonctionne très bien et toutes les images sont traitées.
Donc, si quelqu'un a déjà rencontré ce problème...
De nombreux hébergeurs imposent des limites de connexion et/ou des limites de débit de connexion (ou similaires) pour lutter contre les attaques DDOS (ou pour des raisons d'allocation de ressources).
Pour la limitation du débit de connexion, c'est :
Ils peuvent également utiliser d'autres méthodes pour limiter le nombre d'appels PHP/appels de méthodes PHP spécifiques par seconde.
Pour les méthodes modèles, chaque appel
getimagesize
est une demande distincte, elle peut donc déclencher une limitation et entraîner une erreur de refus de connexionPour la méthode PHP, elle est traitée comme une requête unique, elle sera donc réussie.
Je pense que vous ne pouvez résoudre le problème qu'en discutant avec la société d'hébergement (mais elle ne vous divertira peut-être pas car elle doit encore résoudre d'éventuels DDOS, etc.), sinon respectez la façon dont votre PHP analyse les enregistrements d'images (ou passez à un autre hébergement A. entreprise / utilisant un serveur dédié)