Recuperation data sur page et insertion mysql

Bonjour,
Je souhaite savoir s'il est possible de recuperer des données sur une page web et de les inserer dans une base
mysql

site : http://weather.noaa.gov/pub/data/observations/metar/cycles/01Z.TXT

il faurait decouper et mettre dans 3 champs

champs1 : 2009/10/26 00:59
champs2 : MYEG
champs3 : 260059Z AUTO 09004KT 10SM CLR 26/24 A2999 RMK AO2

et ainsi desuite sachant que les champs 1 et 2 ont toujours le meme nombre de caracteres

merci pour votre aide
Configuration: Windows XP Internet Explorer 6.0

8 réponses

  1. Le format n'est pas vraiment Idéal, un XML serait bien plus adapté.

    Mais su tu n'as aucune autre solotion, je te conseil de :

    Soit passer par la librairie CURL (plutôt complexe)

    Soit, comme il sagit d'un txt, de le parser avec les fonction natives fopen etc ...

    Voilà voilà, tu as quelques pistes ...

    Persol
    0
    1. OK merci pour ta réponse .

      il n y a que ce format
      0
  2. Bonjour,

    Je souhaite savoir s'il est possible de recuperer des données sur une page web et de les inserer dans une base
    mysql

    heuresement que oui !

    alors si c'est ton fichier texte que tu veux insérer dans ta base de données, tu peux le faire grace à phpmyadmin et la fonction importer en CSV

    le problème c'est que le CSV c'est un ligne = un set de données
    alors que là tres données sont sur 2 lignes
    bon, on va corriger ça

    je te donne la méthode, tu feras toi même,
    à chaque fois que j'essaye de tout faire, mon programme plante

    1. copier coller dans un editeur de texte avancé
    https://www.1pix.org/multi/images/fc3jdljsvd63oaxln984.png
    Là on va convertir de 2 à 1 ligne par données
    2. en mode expression régulière : remplacer \r\n\r\n par /replace/
    \r\n par (un espace)
    et enfin /replace/ par \r\n
    https://www.1pix.org/multi/images/or4b0btq34x2jkw2j2o.png
    3. dans un tableur gérant les données brut (comme openoffice), coller le résultat en tant que texte non formaté (ctrl+shift+v). séléctionner escape comme séparateur, séléctionner toutes les colonnes (ctrl+a dans le tableau du bas) et mettre Texte dans type de colonne. OK
    4. on va fusionner les colonnes 1 et 2 puis les 4 5 6 etc.... Dans une nouvelle feuille, se mettre à la même position que la première entrée (normalement A1) et entrer
    =CONCATENER(Feuille1.A1;" ";Feuille1.B1)
    faire un glisser copier sur toutes les longueur de la liste
    5. copier coller de la colonne C dans la B de la 2e feuille
    6. prochaine colonne : =CONCATENER(Feuille1.D1;" ";Feuille1.E1;" ";Feuille1.F1;" ";Feuille1.G1;" ";Feuille1.H1;" ";Feuille1.I1;" ";Feuille1.L1;" ";Feuille1.M1;" ";Feuille1.N1)
    https://www.1pix.org/multi/images/fw422u39lq43p0gt6z1d.png
    c'est prêt pour insérer dans la base de donnée !
    7. en étant bien sur la 2e feuille : fichier , enregistrer sous, format csv, editer les paramètres du filtre, enregistrer, conserver le format actuel, vérifier si séparateur de champ = la virgule et de texte = le double guillemet, ok, ok sur l'avertissement
    8. dans phpmyadmin, section importer, séléctionne le fichier csv. paramètres d'importation: changer point virgule en virgule; noms des colonnes à changer s'il est différent de celui de la table, ou si l'ordre est modifié. dans mon exemple j'ai mis une clé primaire auto incrémentielle, donc je spécifie les champs :
    https://www.1pix.org/multi/images/2rkxtp5389eda4zz1xyp.png
    9. et voilà !! https://www.1pix.org/multi/images/jkgnp9svmufnao0rpr7.png

    Dorian

    PS : mets à jour IE6! on est en 2009, plus en 2001
    0
    1. Sinon, tu peux utiliser la fonction file('monfichier.txt');

      Cette fonction permet de te retourner chaque ligne de ton txt dans un tableau.

      ex:
      <?php 
      $monTableau = file('http://weather.noaa.gov/pub/data/observations/metar/cycles/01Z.TXT');
      $max = count($monTableau);
      for ($i = 0; $i<$max; $i++)
      {
      print_r($monTableau[$i] . '<br />');
      }
      ?>
      


      ce code t'affiche toutes les lignes du fichier TXT après, rien ne t'empêche de faire des enregistrement dans la base de donnée.

      ++
      GaBy
      0
      1. Merci à tous les 2
        j essaye ca ce soir et vous tiens au courant .
        0
    2. @persol
      oula, j'aimerais bien voir ça
      0
      1. SI SI je t'assure ;) je vient de tester et ca marche nickel.

        test et tu verra bien :p

        ++
        GaBy
        0
    3. montre, j'ai fait ma méthode moi
      0
      1. j ai essayé la methode de persol j obtiens rien .

        En fait apres reflexion , il faudrait recuperer les données de la page et les mettre dans un fichier txt .
        Apres et ce sera plus simple pour moi , je voudrais a l aide d'une base acces recuperer ce fichier txt et le mettre dans une table .
        apres j ai un petit programme qui pourra travailler sur la table

        merci
        0
    4. tien, je t'es uploader le script sur mon serveur. laisse charger une petite minute et regarde le resultat.

      http://87.106.207.109/nelly/commentcamarche.php

      script :
      <?php 
      $monTableau = file('http://weather.noaa.gov/pub/data/observations/metar/cycles/01Z.TXT');
      $max = count($monTableau);
      for ($i = 0; $i<$max; $i++)
      {
      print_r($monTableau[$i] . '<br />');
      // ici tu fait tes enregistrement base de donnée avec tes conditions etc
      }
      ?>
      
      


      ++
      GaBy
      0
      1. PS : Pourquoi veux tu le mettre dans un txt alors que le fichier est deja en format txt ....
        0
        1. en fait comme je disais ,

          je voudrais que les données présentes dans la page web soient mises dans une base access .
          apres le reste je sais faire .

          merci
          0
      2. le résultat m'importe peu,
        je veux voir ton script php
        0