Script php trop lent le navigateur

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

4 réponses

  1. moiced59 Messages postés 1161 Statut Membre 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
  2. wolves'sbrother Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   36
     
    Bonjour
    oui,l adresse ip est bien découpée en octets, le problème c est dans la boucle for.
    0
  3. moiced59 Messages postés 1161 Statut Membre 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
  4. wolves'sbrother Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   36
     
    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