Partage
  • Partager sur Facebook
  • Partager sur Twitter

Insérer caractères dans une chaîne

Sujet résolu
    8 décembre 2005 à 10:47:44

    salut !!

    Je suis sûr que c'est tout simple, et il me semble l'avoir déjà vu, mais je ne trouve plus comment faire.

    J'ai une chaîne de 32 caractères, je voudrais donc insérer dans cette chaîne tous les 8 caractères un point.

    Si quelqu'un pouvait m'indiquer la fonction à utiliser.

    Merci :)
    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2005 à 11:04:08

      Ben je pense qu'ne utilisant la fonction substr ça devrait régler ton problème.

      je te laisse voir la doc, et après pour insérer les points tu utilis la concaténation et le tour est joué...
      • Partager sur Facebook
      • Partager sur Twitter
        8 décembre 2005 à 11:15:22

        Oui, j'ai vu cette fonction, mais mon problème c'est que cette chaîne est aléatoire, envoyer par l'utilisateur(conversion d'adresse ip en binaire).

        Donc je ne vois pas trop comment faire avec cette fonction.
        • Partager sur Facebook
        • Partager sur Twitter
          8 décembre 2005 à 11:26:00

          Ben tu fais un substr, c'est simple voilà =>
          <?
          $premier = substr($string, 0, 8);
          $deuxieme = substr($string, 8, 8);
          $troisieme = substr($string, 16, 8);
          $quatrieme = substr($string, 24, 8);
          $new_string = $premier.'.'.$deuxieme.'.'.$troisieme.'.'.$quatrieme;
          ?>
          • Partager sur Facebook
          • Partager sur Twitter
            8 décembre 2005 à 11:44:08


            $str='adcd1234efgh5678ijkl9012mnop3456';
            echo wordwrap($str,8,'.',1);
            • Partager sur Facebook
            • Partager sur Twitter
              8 décembre 2005 à 12:22:04

              Merci janulrich00001,

              Mais j'ai un problème, les deux chaines du milieu (2ème et 3ème) font 16 caractères au lieu de 8, et je ne comprends pas pourquoi :(


              if(strlen($octet_bin) == 32)
                  {
                      $octet1 = substr($octet_bin, 0, 7);
                      $octet2 = substr($octet_bin, 8, 15);
                      $octet3 = substr($octet_bin, 16, 23);
                      $octet4 = substr($octet_bin, 24, 31);
                      echo "L'adresse ".$ip." correspond en binaire à : ";
                      echo $octet1.".".$octet2.".".$octet3.".".$octet4;
                  }

              Par exemple 127.0.0.1 me donne :
              0111111.000000000000000.0000000000000001.00000001

              Alors que cela devrait me donner :
              0111111.00000000.00000000.00000001

              Par contre, si je fais un echo de $octet_bin, mon résultat est correct :
              01111111000000000000000000000001

              Merci Bison, t'as soluce marche impec :)
              Je vais opter pour celle-là :p
              • Partager sur Facebook
              • Partager sur Twitter

              Insérer caractères dans une chaîne

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown