Script php trop lent le navigateur

Résolu
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. 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
    1. Bonjour
      oui,l adresse ip est bien découpée en octets, le problème c est dans la boucle for.
      0
      1. 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
        1. 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