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 :

récupérer des données dans un fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut récupérer des données dans un fichier
    Voila j'aimerai récupérer des données dans un fichier et cela ligne par ligne. Les lignes qui m'intérrésse sont de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [%chaine1%] %chaine2%: %chaine3%
    ....
    j'ai besoin de récupéré les %chaineX%

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sscanf($fp,"[%s] %s: %s", $chaine,$chaine2,$chaine3);
    echo $chaine;
    echo $chaine2;
    echo $chaine3;
    Le problème de cette méthode est que si entre les [] j'ai une phrase, $chaine = le uniquement le premier mot de meme pour les chaine2 et chaine3 ....Si quelqu'un a une idée? je pencherai pour utiliser une expréssion régulière mais je n'y connai pas grand chose...

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    S'il y a un formatage bien précis tu pourrais utiliser des expressions régulières.
    Utilisez preg_match ou preg_match_all

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Essai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $results = preg_replace("#^\[(.+)\][[:space:]]{1}(.+):[[:space:]]{1}(.+)$#", "$1:$2:$3", $fp);
    $results = explode(":", $results);
    echo $results[0];
    echo $results[1];
    echo $results[2];
    Par contre, je ne sais si c'est la meilleure solution pour récupérer les élements...

  4. #4
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Ca me renvoi tourjours 000

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    salut ! est-ce un fichier text ??? si oui tu as cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Fnm = "mon_dossier/mon_fichier.ext"; 
     
    if (file_exists($Fnm)) { action }
    maintenant il y a plusieur solution que tu peut mettre a la place de action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /** Ensuite soit lire tout le fichier
    d'un coup dans un tableau  **/
    $tableau = file($Fnm); 
     
    /* puis affiche ce tableau */
    while(list($cle,$val) = each($tableau)) {
    	echo $val."<br>";
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $inF = fopen($Fnm,"r"); 
    echo fgets($inF, 4096); 
     while (!feof($inF)) {
       echo fgets($inF, 4096)."<br>";
    }
    a toi de jouer avec les paramètre.. jespere que sa te donera peut etre un coup de main..
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Citation Envoyé par pymouse
    Ca me renvoi tourjours 000
    Moi avec $fp = "[une_chaine[test]] uneautrechaine: etpourterminer"; Ca me retourne une_chaine[test], uneautrechaine et etpourterminer.

  7. #7
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Ca fonctionne, ca devait venir de moi.
    Il y a tout de meme un bug lorsqu'entre les "[]" il y une chaine comportant des ":" [mot1:mot2] par exemple.

    Merci de vos réponses ça avance petit à petit

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $fp = "[une_c:haine[test]] uneautrechaine: etpourterminer"; 
     
    $results = preg_match("`^\[(.+)\][[:space:]]{1}(.+):[[:space:]]{1}(.+)$`", $fp, $matches);
    echo $matches[1];
    echo $matches[2];
    echo $matches[3];
    ?>

Discussions similaires

  1. Récupérer des données dans un fichier texte a part.
    Par morora69 dans le forum Général JavaScript
    Réponses: 40
    Dernier message: 17/06/2010, 09h54
  2. Réponses: 8
    Dernier message: 11/06/2010, 15h11
  3. Réponses: 1
    Dernier message: 19/04/2008, 16h26
  4. Réponses: 1
    Dernier message: 05/09/2006, 17h56
  5. Réponses: 2
    Dernier message: 16/01/2006, 19h34

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