Salut à tous,
j'ai un foreach pour traiter des fichiers xml du genre
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="UTF-8"?> <notification> <alerte>HOST</alerte> <typenotif>RECOVERY</typenotif> <service></service> <hote>info_stage_1</hote> <adresse_ip>192.168.12.89</adresse_ip> <etat>UP</etat> <id_etat>0</id_etat> <descr>PING OK - Paquets perdus = 0%, RTA = 2.07 ms</descr> <timestamp>2014-05-20 08:37:09</timestamp> </notification>
et avec ce code ci-dessous, je n'ai que le premier qui est traité et inséré en base.
Pourquoi ?
et en sortie j'ai plusieurs fois le meme enregistrement même si dans la console en debut de chaque ligne il m'affiche traitement de fichier "1", puis "2" etc, j'ai toujours les memes données qui s'affichent correspondantes au premier fichier.
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
22
23
24
25 foreach ($liste as $file) { $contenu = file_get_contents($file); $xml = simplexml_load_string($contenu); print_r($xml); $params = array(); foreach ($xml as $notification) { $param[] = trim($notification); } list($alerte, $typenotif, $service, $hote, $adresse_ip, $etat, $id_etat, $descr, $timestamp) = $param; echo $alerte, PHP_EOL; echo $typenotif, PHP_EOL; echo $service, PHP_EOL; echo $hote, PHP_EOL; echo $adresse_ip, PHP_EOL; echo $etat, PHP_EOL; echo $id_etat, PHP_EOL; echo $descr, PHP_EOL; echo $timestamp, PHP_EOL; $insertion = mysqli_query($mysqli, "INSERT INTO notifications (`Type_Alerte`, `Type_Notification`, `Service`, `Hote`, `Adresse_IP`, `Type_Etat`, `ID_Etat`, `Descriptif`, `Date_Heure`) VALUES ('$alerte','$typenotif','$service','$hote','$adresse_ip','$etat','$id_etat','$descr','$timestamp')"); } // deconnexion de la base $mysqli->close();
Ou ai-je foiré ?
Merci de votre aide.
Partager