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 :

Parser automatiquement plusieurs fichiers .data vers mysql


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 126
    Par défaut Parser automatiquement plusieurs fichiers .data vers mysql
    Bonjour à tous!

    Chaque jour, sur un dossier dédié de mon serveur, plusieurs fichiers .data (c'est du texte lisible via le notepad) de données sont déposés, il sont sous cette forme :

    NUMBER;DATE;VALUE
    34154001;20130820;2582
    Je cherche un script exécuté chaque jour via tache CRON permettant de parser tout les fichiers du dossier, les intégrer dans une base de donnée MYSQL et enfin les supprimer.
    Si cela peut être plus facile avec du excel, j'ai aussi la possibilité de faire livrer les données en XLS.

    Avez vous des scripts exemple ou des conseils à me donner pour y arriver?

    Merci beaucoup à vous tous et bonne journée!

  2. #2
    Membre expérimenté Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Par défaut
    Bonjour josse34,

    Tu peux facilement te faire un petit script pour faire cela :
    - Ouverture de ton fichier
    - Parcours de chaque ligne dans une boucle
    - Pour chaque ligne, enregistrer les infos que tu veux en BD à chaque itération de ta boucle
    - Tu peux compter le nombre de ligne, faire une variable tableau pour stocker chaque lignes, incrémenter une variable d'erreur, ... pour un affichage ensuite

    Les fonctions qui peuvent t'aider (documentation PHP)
    - file_exists()
    - fopen()
    - file_get_content()
    - explode()
    - sscanf()
    - trim()
    - strlen()
    - ...

    Enjoy

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 126
    Par défaut
    Bonjour!
    Bon deja un tout petit début :
    Fichier fic34154001-2013-09-30.data :
    POSTE;DATE;GLOT
    34154001;20130929;1168
    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
    <?php
     
        $data = file_get_contents('fic34154001-2013-09-30.data');
        $matches = array();
        $tab_result = array();
     
        foreach(explode("\n", $data) as $line)
        {
            if(!empty($line))
            {
                preg_match('/(\d+);(\d+);(\d+)/', $line, $matches);
     
    print_r($matches);
     
            }
     
        }
     
    ?>
    Cela donne :
    Array ( ) Array ( [0] => 34154001;20130929;1168 [1] => 34154001 [2] => 20130929 [3] => 1168 )

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Bonjour,

    il y a une fonction csv intégrée dans php

    a voir la doc avec les exemples
    http://php.net/manual/fr/function.fgetcsv.php

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 126
    Par défaut
    Merci!
    Code basique avec fgetcsv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (($handle = fopen("fic34154001-2013-09-30.data", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {   
            print_r($data);
        }
        fclose($handle);
    } 
    ?>
    Cela donne :
    Array ( [0] => POSTE [1] => DATE [2] => GLOT ) Array ( [0] => 34154001 [1] => 20130929 [2] => 1168 )
    Comment ne retrouver que les données de la ligne 2, la numérotation du ARRAY n'est pas indiqué, donc si je fais print_r($data[2]); cela indique GLOT1168 !

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    vous savez que l'index d'un tableau en php débute à 0 (et pas a 1) ?

    la numérotation du ARRAY n'est pas indiqué
    et ca ??
    [0] => POSTE [1] => DATE [2] => GLOT

Discussions similaires

  1. Importation fichier plat vers Mysql
    Par xender dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/05/2006, 22h36
  2. import fichier excel vers mysql
    Par Groshaeny Roger dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 03/04/2006, 20h31
  3. fichier .txt vers Mysql
    Par Jeff87-01 dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/03/2006, 19h16
  4. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 19h14
  5. Génerer automatiquement plusieurs fichier .doc
    Par brunovitch dans le forum QuickReport
    Réponses: 3
    Dernier message: 09/07/2002, 08h19

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