Script php trop lent le navigateur

Résolu
wolves'sbrother Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   -  
wolves'sbrother Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   60
 
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   Statut Membre Dernière intervention   35
 
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   Statut Membre Dernière intervention   60
 
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   Statut Membre Dernière intervention   35
 
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