Recuperation data sur page et insertion mysql

Fermé
yoyo - 26 oct. 2009 à 09:10
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 - 26 oct. 2009 à 16:00
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

8 réponses

persol Messages postés 53 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 2 décembre 2011 9
26 oct. 2009 à 09:47
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
OK merci pour ta réponse .

il n y a que ce format
0
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
26 oct. 2009 à 10:23
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
persol Messages postés 53 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 2 décembre 2011 9
26 oct. 2009 à 11:02
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
Merci à tous les 2
j essaye ca ce soir et vous tiens au courant .
0
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
26 oct. 2009 à 13:43
@persol
oula, j'aimerais bien voir ça
0
persol Messages postés 53 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 2 décembre 2011 9
26 oct. 2009 à 14:18
SI SI je t'assure ;) je vient de tester et ca marche nickel.

test et tu verra bien :p

++
GaBy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
26 oct. 2009 à 14:21
montre, j'ai fait ma méthode moi
0
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
persol Messages postés 53 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 2 décembre 2011 9
26 oct. 2009 à 15:45
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
persol Messages postés 53 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 2 décembre 2011 9
26 oct. 2009 à 15:51
PS : Pourquoi veux tu le mettre dans un txt alors que le fichier est deja en format txt ....
0
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
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
26 oct. 2009 à 16:00
le résultat m'importe peu,
je veux voir ton script php
0