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ération de données à partir d'un fichier texte


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Récupération de données à partir d'un fichier texte
    Bonjour,

    Je suis débutante en php, je travaille sur un sujet de création d'une base de données et d'un outil web.

    je cherche à récupérer (extraire) des données d'un fichier .txt et en suite, les charger dans ma base de données.

    par ex. voici le contenu de mon fichier :

    Code :
    [fichier de sauvgarde]
    c:\sauvgar\...\....
    [Informations sur le contexte]
    equipement: ff-d
    code: pg1445
    test title: ghklo
    Je cherche a lire par ex. toutes les lignes de mon fichier et extraire les chaines de caractères situées après les ":"
    et les charger dans les tables de ma base de données comme suit:

    table équipement:

    equi: ff-d
    code: pg1445
    table teste:
    title: ghklo


    Voici ce que j'ai déjà fait :
    Après que j'ai lu ma ligne entièrement, comment puis-je traiter cette ligne pour extraire les données qui sont après les deux points? Merci !

    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
    <?php
    //ouvrir le fichier//
    $monfichier = fopen('le nom du fichier', 'r');
    if ($monfichier)
    {
    //tant que l'on est pas à la fin du fichier//
    while (!feof($monfichier))
    {
    //lire la ligne courante//
    $ligne = fgets($monfichier);
     
     
    // code pour récupérer mes textes, j'ai une petite idée ( lire le fichier ligne par ligne, stocker le contenu de la ligne dans une variable , chercher le mot equipement ou code ou test title, récupérer la donnée après ":" l'insérer dans la table, mais je n'arrive pas à le faire  ?????
     
     
    //fermeture du fichier//
     
    fclose ($monfichier)
     
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux utiliser la fonction explode() pour decouper à ":"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci pour votre réponse.

    la fonction explode ne me pose pas de problème , juste après avoir extraire la données je sais pas comment la stocker dans un tableau, puis l'insérer dans ma base de données (mes tables).

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Utilisation de la fonction Stristr
    Bonjour,

    je travaille sur un sujet de création de base de données , les données sont stocké sous forme de fichiers texte , je dois créer un script qui lit et charge les données des fichiers dans mes tables (base de données).

    ma mission ne consiste pas à récupérer toutes les données du fichier, donc je dois le lire ligne par ligne, chercher la données dans la ligne courante si elle est présente la récupérer (récupérer sa valeur "partie gauche")et l'insérer dans ma table.

    j'ai essayé de faire un script, mais je n'ai pas aimé le faite qu'a chaque fois je refais la boucle if (stristr($contenu_ligne,'la donnée recherché') === true)
    NB: je dois récupérer la valeur de ma donnée recherché

    Exemple de fichier (les données qui sont en gras sont les valeurs des données à récupérer):

    Code txt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [Fichier de sauvegarde]
    C:\.....\djhdkhdkfh
    [Informations sur le contexte d'exécution]
    BAIE: ghfy_44
    PROJECT: sjsgh
    EQUIPMENT: shshs
    Test procedure: 114585
    Specification reference: Ez47
    Model: Pzjsd
    Report reference: NA
    Test title: FULL full
    voila mon script:
    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
    27
     
    <?php
    //ouvrir le fichier//
    $monfichier = fopen('fichier.txt', 'r'); //'r' signifie ouvrire le fichier en lecture seulement//
    // opération sur le fichier si on est arriver à l'ouvrir//
    if ($monfichier)
    {
    while (!feof($monfichier)) //tant que l'on est pas à la fin du fichier//
    {
    $contenu_ligne = fgets($monfichier); //lire la ligne courante//
    if (stristr($contenu_ligne,'BAIE') === true)
    {
    List ($bai, $baie)= explode(':',$contenu_ligne); //$baie: contient la valeur que je dois insérer dans ma table//
    }
    if (stristr ($contenu_ligne, 'project')=== true)
    {
    List ($pro, $project)= explode (':', $contenu_ligne);//$project: contient la valeur que je dois insérer dans ma table//
    }
    if (stristr($contenu_ligne,'EQUIPEMENT') === true)
    {
    List ($eq, $equipement)= explode(':',$contenu_ligne);//$equipement: contient la valeur que je dois insérer dans ma table//
    }
    if (stristr ($contenu_ligne, 'test title')=== true)
    {
    List ($tit, $titre)= explode (':', $contenu_ligne);//$title: contient la valeur que je dois insérer dans ma table//
    }
    ?>
    les tables de ma bases de données:

    table projet:

    Project:sjsgh

    table equipements:

    baieequip:shshs

    table tests:

    title:FULL full

    baie:ghfy_44
    Merci.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà indente proprement ton code pour qu'il soit lisible.

    Ensuite, recupère simplement tous les contenus ayant ":", vu la taille de ton fichier, ça ne va pas manger ta mémoire et ça aura plus vite.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code php : 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
    <?php
    //ouvrir le fichier//
    $monfichier = fopen('le nom du fichier', 'r');
    $lignes_array = array();
    if ($monfichier)
    {
    	//tant que l'on est pas à la fin du fichier//
    	$ligne
    	while (!feof($monfichier))
    	{
    	//lire la ligne courante//
    	$lignes_array[] = fgets($monfichier);
     
    	//fermeture du fichier//
    	fclose ($monfichier)
     
    }
    Ici, toute s les lignes sont récupérées d&ns un array nommé $lignes_array.

    Il suffit alors de traiter cet array pour en extraire les données.

Discussions similaires

  1. Récupération de données à partir d'un fichier texte
    Par pyrrha dans le forum Téléchargez
    Réponses: 0
    Dernier message: 30/09/2011, 17h34
  2. [XL-2000] Récupération de données à partir d'un fichier texte
    Par laurence17 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/06/2010, 13h42
  3. récupération de données à partir d'un fichier texte
    Par ludol59 dans le forum Bibliothèque standard
    Réponses: 9
    Dernier message: 23/01/2008, 21h04
  4. ajout de données à partir d'un fichier texte
    Par drakenzara dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 14/04/2006, 12h39
  5. Réponses: 3
    Dernier message: 29/03/2006, 14h23

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