HELP : j'aimerai utiliser un flux xml pour une maj de bdd


oli004
WRInaute passionné
WRInaute passionné
 
Messages: 2173
Inscription: 5 Jan 2005

HELP : j'aimerai utiliser un flux xml pour une maj de bdd

Message le Mer Juin 04, 2008 13:12

Bonjour tout le monde,

Sur un de mes sites, je diffuse les produits d'un fabriquant. Ces produits sont disponibles via un flux xml ou via un csv.

pour commencer, j'ai utilisé le csv, que j'ai envoyé en base, puis j'affiche les données par catégories en triant ce que je veux dans ma base.

pour le moment, pas de soucis ça fonctionne exactement comme je le souhaite.

Néanmoins, se pose le problème de la mise à jour des produits. Pour remedier à ce problème, je devrai partir non pas du csv mais du fichier xml.

Là je coince un peu.

Je saurais programmer une tache CRON pour télécharger quotidienement le catalogue xml et executer le script de mise a jour de la bdd, mais je sèche concernant le passage de du xml en base de données

Je ne vous demande pas de me faire le script mais si vous avez des exemple d'applications ou un flux xml est injecté en base, je suis preneur.

merci d'avance.


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Mer Juin 04, 2008 13:22

Hello,

que le flux soit en XML ou en CSV ne change pas grand chose au traitement normalement.

Si le catalogue n'est pas trop gros (quelques Mo maxi), utilise SimpleXML : un foreach sur les items dont tu as besoin et c'est parti.


oli004
WRInaute passionné
WRInaute passionné
 
Messages: 2173
Inscription: 5 Jan 2005

Message le Mer Juin 04, 2008 15:00

je ne suis pas sous php5 necessaire à simplexml me semble-t-il


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Mer Juin 04, 2008 15:21

Effectivement, mais à la veille de la sortie de PHP 6 il faudrait peut être songer à migrer :P


cyberlahy
WRInaute discret
WRInaute discret
 
Messages: 80
Inscription: 4 Avr 2006

Message le Mer Juin 04, 2008 16:13

php 6 c'est pour quand????? la version officielle je vais dire pas les betas et rc


zeb
WRInaute accro
WRInaute accro
 
Messages: 4560
Inscription: 5 Déc 2004

Message le Mer Juin 04, 2008 20:31

une idée sans trop connaître la structure de ton flux

Code: Tout sélectionner
   preg_match_all("/<item>.{100,1000}</item>/",$xml_string, $matches);
   foreach($matches as $item) {
      (... traitement d'un article/item...)
   }


Dans la traitement de l'article, quelques regex peuvent facilement créer un requette SQL a partir du morceau de flux extrait par le preg_match all.
Il suffit ensuite d'injecter la dite requette dans la base.
Nota attention aux doublons a la sortie, une petite vérification est peut être nécessaire avant de passer la requette.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité