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 :

Extraction des champs


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 32
    Points
    32
    Par défaut Extraction des champs
    salut tout le monde
    je récupère dans un buffer une chaine de caractere de la forme:

    login: kelk1
    password: pwd
    age: 24

    j'aimerais chercher une méthode pour extraire chaque champ et l'information correspondante
    je developpe en php
    selon mes recherches on peut faire ca en perl mais je débuté perl il y a un jour
    merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 59
    Points : 59
    Points
    59
    Par défaut
    Les expressions régulières perl sont compatibles (et conseillées) avec php. L'extension les gérant se nomme PCRE.

    Maintenant pour répondre à ta question, tu peux utiliser les regexs dans les deux langages.

    (Regex à confirmer. C'est ma bête noire!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($login, $password, $age) = preg_split('^login: (\w)\npassword: (\w)\nage: (\w)#i', $tonTexte).
    Autrement, tu peux utiliser 4 fois la fonction explode de cette manière. C'est plus simple à comprendre, mais probablement un tantinet plus lent (quoique).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $lignes = explode('\n', $tonTexte);
    $login = explode(': ', $lignes[0])[1];
    $password = explode(': ', $lignes[1])[1];
    $age = explode(': ', $lignes[2])[1];
    A confirmer par quelqu'un de plus expérimenter (ou à tester )

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    merci beaucoup
    c'est un bon départ

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 59
    Points : 59
    Points
    59
    Par défaut
    Pas de problème.
    N'hésite pas à me le faire remarquer si mon code n'est pas fonctionnel ou te pose problème.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Citation Envoyé par nuKs Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lignes = explode('\n', $tonTexte);
    Je dirais même plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lignes = explode("\n", $tonTexte);
    Car si tu ne mets pas de guillemet, c'est interprèté comme une chaîne de caractères, et donc, introuvable.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    On peut imaginer que les blocs d'informations peuvent être multiples, et le nombre d'informations de chacun variable, tel que :
    login: kelk1
    password: pwd
    age: 24

    login: unautre
    password: autrepwd
    age: 150
    ville: Paris
    Donc, je propose le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
      //-- recherche séparateur --------------------
      $sep = (strpos("\r\n", $chaine) !== FALSE) ? "\r\n" : "\n";
      $ligne = explode($sep, $chaine);
     
      //-- on met les informations dans un tableau associatif ------
      //-- dont la clé est la 1ère colonne et la valeur la 2è ------
      $paire = array();
      $i = 0;
      foreach ($ligne as $colonneValeur)
      {
        //-- En considérant qu'une ligne vide sépare les blocs ---------
        if(trim($colonneValeur) == '')
        {
          $i ++;
        }
        else 
        {
          $tmp = explode(':', $colonneValeur);
          $paire[$i][trim($tmp[0])] = trim($tmp[1]);
        }
      }
     
      //-- visualisation du résultat ------------------
      echo '<pre>';
      print_r($paire);
      echo '</pre>';

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    je vous mercie pour vos réponses. c'était exactement ce que je cherche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction des champs d'une phrase
    Par étoile de mer dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 23/05/2013, 09h41
  2. Extraction des champs a partir d'un fichier excel
    Par adihoub dans le forum Pentaho
    Réponses: 2
    Dernier message: 20/02/2010, 15h35
  3. extraction des champs d'une table SQL?
    Par nabilG dans le forum C#
    Réponses: 2
    Dernier message: 06/03/2009, 13h49
  4. Extraction des valeurs hexa d'un champ char
    Par Krispi dans le forum Fortran
    Réponses: 3
    Dernier message: 21/11/2005, 11h10
  5. Probleme d'extraction des champs nuls
    Par ETOKA dans le forum SQL
    Réponses: 2
    Dernier message: 17/01/2005, 11h03

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