Script php trop lent le navigateur

Résolu/Fermé
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 - 4 mars 2011 à 18:47
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 - 6 mars 2011 à 15:20
Bonjour,

function calc($ip){
    $cdir = 0;
    $octets = explode(".",$ip);
    foreach($octets as $oct){
        $bin = decbin($oct);        
          for($i=0;i<strlen($bin);$i++){
            echo 'ok';
            if($bin[$i]==1){
                $cdir++;
            }
         }

    }

echo $cdir;

}

calc('178.20.150.0');

en php j'ai le message : Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/script.php on line 63

J'ai fait une fonction pareil en javascript, elle fait carrement planté le navigateur.

Que dois je faire?

Merci
A voir également:

4 réponses

moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
5 mars 2011 à 08:21
Bonjour

tu as essayé dans ta fonction de faire un echo $octets[0] ;
pour voir si ton adresse ip arrive bien jusqu'à a ta fonction
0
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
5 mars 2011 à 11:00
Bonjour
oui,l adresse ip est bien découpée en octets, le problème c est dans la boucle for.
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
5 mars 2011 à 18:18
manque un $ a i je le met en gras

function calc($ip){
$cdir = 0;
$octets = explode(".",$ip);
foreach($octets as $oct){
$bin = decbin($oct);
for($i=0;i<strlen($bin);$i++){
echo 'ok';
if($bin[$i]==1){
$cdir++;
}
}

}

echo $cdir;

}

calc('178.20.150.0');
0
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 34
6 mars 2011 à 15:20
Ce n'etait pas le probleme , j'ai juste modifie 2eme ,la boucle et sa marche maintenant, c'est bizarre. voici le code
function calc($ip){
$cdir = 0;
$octets = explode(".",$ip);
foreach($octets as $oct){
   $bin = dec2bin($oct);
   echo $bin.'<br/>';
   for($i=strlen($bin);$i!=0;$i--){
       if($bin[$i]==1){$cdir++;  }
   }
}
echo $cdir;
}

calc('178.20.150.0');
0