Bonjour,
Tout d'abord excusez moi si je me suis tromp� de section j'ai eu du mal a identifier le lieu exacte ou poser ma question.
Je d�bute en programmation, tout particuli�rement en manipulation de fichier xml.
Mon besoin est assez simple je pense et les aides que je trouve me laisse dans l'embarras et cible des utilisations trop complexe, bref je m y perd.
Voila ce que je veux:
R�cuperer deux donn�es dans un fichier xml pour ensuite les exploiter en php/mysql, l'exploitation ca je sais faire mais la r�cup�ration via parser me pose probl�me.
Structure du fichier xml:
C'est le motif du fichier xml parfois il change l�g�rement.
Code XML : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 <Song FileName="Atomic Cat - Viva la Revolution!.mp3" FileSize="3931890" TagDate="704012053"> <Infos SongLength="10810368" Date="704012053" /> <BPM Bpm="18899" Phase="1559" /> <FAME IsScanned="1" Volume="6065" /> <Automix MixType="3" TempoStart="77155" TempoEnd="9753443" CutStart="1984" CutEnd="10490592" FadeStart="16896" FadeEnd="10643968" /> </Song>
Je veux faire uniquement une exploitation local pour mon petit projet.
J'ai besoin seulement de r�cup�rer:
Atomic Cat - Viva la Revolution!.mp3
18899
Soit le titre du morceau (Filename) et son BPM (Bpm).
Ces donn�es doivent juste etre stock� dans deux variable tableaux mais index� de facon a ce que a chaque num�ro d index j'ai bien le bon BPM pour le bon titre.
J'ai fais un cod ed�ja qui donne des r�sultats:
Mais comme on peut le voir je r�cup�re de facon distincte le titre et le BPM ce qui fait que d�s que j'ai un titre dans le XML sans BPM je suis plant� et ca d�cale tout.
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 <?php set_time_limit(0); $file = "test.xml"; $contenu = fread(fopen($file, "r"), filesize($file)); preg_match_all("|<Song FileName=\"(.*)\" FileSize=\"(.*)\" TagDate=\"(.*)\">|U", $contenu, $titre); preg_match_all("|<BPM Bpm=\"(.*)\"|U", $contenu, $bpm); // <BPM Bpm=\ Phase=\"(.*)\" BeatPhase=\"(.*)\" />|U $nbrtrack=count($titre[1]); echo '<b>Nbr de titre analysé(s) :'.$nbrtrack.'<br/>'; /* le \d signifie n'importe quelle décimale */ /* le .* signifie n'importe quel caractère '.' présent de 0 à n fois '*' */ for($j=0;$j<count($titre[1]);$j++){ echo $titre[1][$j].'<br/>'; echo $bpm[1][$j].'<br/>'; } ?>
J'aimerai juste faire la r�cup�ration en un temps dans la fonction preg_match_all ou utiliser une autre m�thode pour arriver a mes fin.
J'utilise easyphp
php version 4.3.10
Merci pour votre aide �ventuel !







R�pondre avec citation




Partager