J'ai un fichier xml qui change tous les jours.
Il porte tous les jours le meme nom "CQFIC270.TXT"
Actuellement, j'ai un fichier qui me permets d'éclater ce fichier de base en plusieurs autres fichiers XML.
Ce que je n'arrive vraiment pas à faire c'est comment lire le fichier de base, l'éclater comme actuellement mais sans écraser les petits fichiers. L'action que je n'arrive pas à faire, c'est lire les petites fichiers : si les lignes sont identiques = rien sinon je rajoute à la suite les nouvelles valeurs ???
voici le fichiers php qui devrait faire son travail :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?php $fichiers_sortie = array(); $fp = fopen('CQFIC270.TXT', 'r'); while (!feof($fp)) { $ligne = fgets($fp); $fragments = explode(';', $ligne); $nomFichier = $fragments[0] . $fragments[1]; if (!isset($fichiers_sortie[$nomFichier])) { $fichiers_sortie[$nomFichier] = new DOMDocument('1.0', 'ISO-8859-1'); } $dom = $fichiers_sortie[$nomFichier]; try { //switch ($fragments[2]) { // case $fragments[2]: $xpath = new DOMXPath($dom); //$id = $xpath->evaluate("/id{$fragments[2]}")->item(0); $id = $xpath->evaluate("/{$fragments[2]}")->item(0); if ($id == null) { //$id = $dom->createElement("id{$fragments[2]}"); $id = $dom->createElement("{$fragments[2]}"); $dom->appendChild($id); } $mvt = $dom->createElement('mvt'); $mvt->setAttribute('Libelle', $fragments[3]); $mvt->setAttribute('dateValeur', $fragments[4]); $mvt->setAttribute('Valeur', $fragments[5]); $mvt->setAttribute('Volatilite', trim($fragments[6])); $id->appendChild($mvt); // break; //} } catch (Exception $e) { die('Ligne ' . $e->getLine() . ' : ' . $e->getMessage()); } } fclose($fp); foreach ($fichiers_sortie as $k => $v) { $v->save("$k.xml"); unset($fichiers_sortie[$k]); } ?>
voici le fichier qui est lu le jour n-1 jour :
le lendemain : j'ai le nouveau 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 CQFIC270.TXT 8025;29000;FR0000293000;BT;20060924;9447.04;0.046695 8025;29000;FR0000293000;BT;20060925;9447.82;0.046695 8025;29000;FR0000293000;BT;20060926;9448.62;0.046695 8025;29000;FR0000293000;BT;20060927;9449.42;0.046695 8025;29000;FR0000293000;BT;20060928;9450.2;0.046695 8025;29000;FR0000293000;BT;20060929;9452.65;0.046695 8025;29000;FR0000293000;BT;20061001;9452.65 4025;1712000;FR0010029000;ECO;20060817;11175.05;1.7772 4025;1712000;FR0010029000;EC;20060824;11185.44;1.77343 4025;1712000;FR0010029000;ECO;20060831;11210.9;1.781717 4025;1712000;FR0010029000;ECO;20060907;11192.31;1.793219 4025;1712000;FR0010029000;ECO;20060914;11212.32;1.7969 4025;1712000;FR0010029000;ECO;20060921;11226.71;1.794382 4025;1712000;FR0010029000;ECO;20060928;11260.29;1.776394
En synthèse :
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 CQFIC270.TXT 8025;29000;FR0000293000;BT;20060929;9452.66;0.046695 8025;29000;FR0000293000;BT;20061001;9452.67 8025;29000;FR0000293000;BT;20061002;9447.04;0.046695 8025;29000;FR0000293000;BT;20061005;9447.82;0.046695 8025;29000;FR0000293000;BT;20061006;9448.62;0.046695 8025;29000;FR0000293000;BT;20061007;9449.42;0.046695 8025;29000;FR0000293000;BT;20061008;9450.2;0.046695 4025;1712000;FR0010029000;ECO;20060907;11192.31;1.793219 4025;1712000;FR0010029000;ECO;20060914;11212.32;1.7969 4025;1712000;FR0010029000;ECO;20060921;11226.71;1.794382 4025;1712000;FR0010029000;ECO;20060928;11260.29;1.776394 4025;1712000;FR0010029000;ECO;20061017;11175.05;1.7772 4025;1712000;FR0010029000;EC;20061024;11185.44;1.77343 4025;1712000;FR0010029000;ECO;20061031;11210.9;1.781717
Le script actuelle fonctionne car il crée bien 2 fichiers XML
MAIS je n'arrive pas le lendemain à comparer chacun de ces fichiers et à lui ajouter les lignes en plus.
Un grand grand merci au pro.
Partager