IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraire pls morceaux d'une chaine dans des variables!


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 41
    Points
    41
    Par défaut Extraire pls morceaux d'une chaine dans des variables!
    Bonjour,

    J'ai besoin d'extraire plusieurs parties d'une chaine dans plusieurs variables et je ne sais pas comment faire:

    ma chaine:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dj:dj:dj@toto.com:usa:anglais:64:128:256
    je souhaite extraire 64 dans $catalogue, 128 dans $doc et 256 dans $cmo
    Cette chaine est stockée ds un fichier texte.
    Merci d'avance pr votre aide!

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    en utilisant la fonction explode de php, avec comme séparateur : tu va découper ta chaine en un tableau de chaines contenant tes divers éléments séparés.
    Il va ensuite te suffire de récupérer les trois derniers éléments de ton tableau, et de les affecter aux bonnes variables ..

    http://fr3.php.net/manual/fr/function.explode.php
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    http://php.net/explode

    EDIT: grilled

  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    ok, merci de votre aide!
    mais est ce que ca marchera aussi si la chaine est variable?(si y'a pas 64 et 256 par exemple?
    Je suis dsl de vous poser d question aussi béte mais je débute en php

  5. #5
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    oui, du moment que ton séparateur (ici les : ) est constant.

    ainsi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    explode(":", "dj:dj:dj@toto.com:usa:anglais:64:128:256");
    va te renvoyer un tableau contenant :

    dj
    dj
    dj@toto.com
    usa
    anglais
    64
    128
    256
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 92
    Points : 102
    Points
    102
    Par défaut
    si il n'y a pas 64 ? Faut que dans la génération de ton fichier texte tu aies tjrs le même nb de colonne. au lieu de 64 ce sera vide

  7. #7
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    le probléme c que je ne peux pas prévoir le nombre de champs entre ;
    les 5 premiers sont tjs présent mais apres ceux avec les numéros varient!
    Et je ne peux pas laisser de champs vide entre 2 ;

  8. #8
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    tu peux tester si les valeurs que tu récupère sont numériques :

    http://fr3.php.net/manual/fr/function.is-numeric.php

    donc en testant les dernières valeurs de ton tableau, tu saura combien tu en as de numérique ....
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  9. #9
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    j'ai reussi a morceler la chaine et a afficher uniquement les champs numérique de cette maniére :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $ligne = rtrim($ligne) ;
    $champ = explode(";", $ligne);
    $nbChamp = sizeof($champ);
    if ($nbChamp > 6)
    {
    	for &#40;$i = 5; $i < $nbChamp; $i++&#41;
    	&#123;	
    		echo "CodeBinaire de l'acces&#58;".$champ&#91;$i&#93;."\n";
    	&#125;
    &#125;
    mais lorsque j'execute ce script, j'obtiens :

    CodeBinaire de l'acces:64
    CodeBinaire de l'acces:128
    CodeBinaire de l'acces: 256
    CodeBinaire de l'acces:
    CodeBinaire de l'acces:128
    CodeBinaire de l'acces:
    Comment faire pr supprimer ces champs vides?

  10. #10
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for &#40;$i = 5; $i < $nbChamp; $i++&#41;
       &#123;   
          if &#40;$champ&#91;$i&#93; != ''&#41; &#123;
             echo "CodeBinaire de l'acces&#58;".$champ&#91;$i&#93;."\n";
          &#125;
    &#125;
    :
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  11. #11
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    en fait je voudrais les supprimer directement dans le tableau... c'est possible?

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/07/2014, 09h15
  2. Remplacer une chaine dans des champs
    Par Phiss dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/07/2008, 12h08
  3. [code]Recherche d'une chaine dans des fichiers
    Par guillaume_pays_ceven dans le forum Contribuez
    Réponses: 5
    Dernier message: 21/06/2007, 15h32
  4. [re] Extraire plusieurs morceaux d'une chaine
    Par Hunhau dans le forum Général Python
    Réponses: 4
    Dernier message: 31/07/2006, 14h44
  5. eclater une phrase dans des variable
    Par lassmust dans le forum Delphi
    Réponses: 2
    Dernier message: 07/07/2006, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo