Comment enlever dans un explode de fichie
Posté : 26 oct. 2006, 09:56
Bonjour
j'ai un soucis avec un script.
Son but est de lire un fichier txt et de l'exploser et construire un fichier xml.
Mon fichier est constitué de 8 parties coupé par ; mais il arrive que le dernier élément manque alors j'ai un soucis car apparait alors
Voici le script et fichiers:
Fichier de départ :
une partie du fichier php :
et voici l'arrivée en xml :
Je ne sais pas comment enlever
Merci beaucoup
j'ai un soucis avec un script.
Son but est de lire un fichier txt et de l'exploser et construire un fichier xml.
Mon fichier est constitué de 8 parties coupé par ; mais il arrive que le dernier élément manque alors j'ai un soucis car apparait alors
Voici le script et fichiers:
Fichier de départ :
Code : Tout sélectionner
8025;29000;FR9909090909;BT;20070925;9447.82;0.046695
8025;29000;FR9909090909;BT;20071001;9452.67
une partie du fichier php :
while (!feof($fp)) {
$ligne = fgets($fp);
$fragments = explode(';', $ligne);
if ($codeIsinPrec!="" && $codeIsinPrec!=$fragments[2])
{
$nomFichier ="cours/cours".$todayY.$sTodaym.$sTodayj ;
if (!isset($fichiers_sortie[$nomFichier])) {
$fichiers_sortie[$nomFichier] = new DOMDocument('1.0', 'ISO-8859-1');
if (file_exists($nomFichier . ".xml"))
{
$fichiers_sortie[$nomFichier]->load($nomFichier . ".xml") ;
}
}
$dom = $fichiers_sortie[$nomFichier];
try {
$xpath = new DOMXPath($dom);
if ($bPremiereFois) {
if (!file_exists($nomFichier . ".xml"))
{
$id = $dom->createElement("mvts");
$dom->appendChild($id);
}
else
{
$id = $xpath->evaluate("mvts")->item(0);
}
$bPremiereFois = false;
}
$node = $xpath->evaluate("mvt[@code_isin='{$fragmentsPrec[2]}']")->item(0);
if ($node==null)
{
$mvt = $dom->createElement('mvt');
$mvt->setAttribute('code_cns', $fragmentsPrec[0].$fragmentsPrec[1]);
$mvt->setAttribute('code_isin', $fragmentsPrec[2]);
$mvt->setAttribute('dateValeur', $fragmentsPrec[4]);
$mvt->setAttribute('cours', $fragmentsPrec[5]);
$mvt->setAttribute('volatilite', $fragmentsPrec[6]);
$id->appendChild($mvt);
}
} catch (Exception $e) {
die('Ligne ' . $e->getLine() . ' : ' . $e->getMessage());
}
}
$codeIsinPrec = $fragments[2];
$fragmentsPrec = $fragments;
}
fclose($fp);
et voici l'arrivée en xml :
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<mvts><mvt code_cns="802529000" code_isin="FR9909090909" dateValeur="20091001" cours="9452.67
" volatilite=""/><mvt code_cns="40251712000" code_isin="FR2121212121" dateValeur="20070925" cours="9000.82" volatilite="1.046695
"/>
Je ne sais pas comment enlever
Merci beaucoup
Code : Tout sélectionner