Php chaîne de caractère

Résolu
siniko44 Messages postés 187 Statut Membre -  
iBobos Messages postés 39 Statut Membre -
Bonjour,

//J'éxecute ma requête

Je reçois : 64#1#7#0#1d7+0
Ou autre exemple : 7b#b#1e#0#1d20+10,80#1#0#0#0d0+1

Et je voudrais savoir s'il est possible de traiter cette chaîne de caractère,
tel que : (exemple 1)
$chaine = $typ'#X#X#X#'$j1.$j2.$j3;

X étant un nombre pouvant etre composé de 1 à 3 caractère.
Jusqu'ici, je ne trouve pas de solutions et doute d'en trouver :/. Pour gérer les multiple chaîne (exemple 2), j'avais idée de faire une boucle. Sinan j'voie pas tellement à quoi me servirait la fonction substr.
Voilà, j'espere tout de même avoir quelque réponse, sinon tanpis.

Cordialement.

2 réponses

  1. iBobos Messages postés 39 Statut Membre 6
     
    Bonjour,

    Tu peux essayer de passer par les REGEXP.

    Je ne suis pas expert dans ce domaine, mais je sais qu'une telle chose est possible.

    $chaine = $typ'#X#X#X#'$j1.$j2.$j3;

    Si j'ai bien compris, X peut être un nombre de 1 à 3 caractères.
    Tu pourrais créer une REGEXP du genre:

    $chaine = [#][0-9]{1,3}+[#][0-9]{1,3}+[#][0-9]{1,3};

    Je n'ai aucune idée si cette Expression régulière marche, mais tu peux toujours essayer. En tout cas, creuse de ce côté, c'est par là que tu vas trouver.

    Bon courage.
    1
    1. siniko44 Messages postés 187 Statut Membre 17
       
      Voilà, alors j'ai trouver un truc :

      <?php ereg("([[:alnum:]]+)#([[:alnum:]]+)#([[:alnum:]]+)#([[:alnum:]]+)#([[:alnum:]]+)d([[:alnum:]]+)+([[:alnum:]]+)", '64#1#7#0#1d7+0', $regs); 
      echo $regs[1];


      Les '([[:alnum:]]+)' sont séparés par les caractère voulu. Mais php me dit que cette fonction est obsolète depuis la version 5.3.0. Je cherche donc une fonction quelque peu semblable à celle-ci.
      0
    2. siniko44 Messages postés 187 Statut Membre 17
       
      Hmm, elle est bien compliqué elle :/
      0
    3. iBobos Messages postés 39 Statut Membre 6
       
      $chaine = "([[:alnum:]]+)#([[:alnum:]]+)#([[:alnum:]]+)#([[:alnum:]]+)#([[:alnum:]]+)d([[:alnum:]]+)+([[:alnum:]]+)";

      if(preg_match($chaine, $taVariable)){
      echo 'C'est valable';
      } else {
      echo 'C'est pas valable';
      }
      0
    4. siniko44 Messages postés 187 Statut Membre 17
       
      Bon j'ai un peu abandonné l'idée, mais j'men suis sortie avec les 'stristr'. Certe, pas une méthode rapide mais elle marche ^^.
      0
  2. siniko44 Messages postés 187 Statut Membre 17
     
    Merci beaucoup, j'vais creusé dans cette idée ! ;)
    0