Ecriture resultat après comparaison fichiers

asmou -  
 jostem -
Bonjour,
je dois comparer deux fichiers csv et écrire le résultat dans un troisième fichier.
mon problème porte sur l'écriture; il ne m'écrit qu'une ligne.
je vous passe le code.
merci de m'aider.

$fichier2=fopen("D:/ludo3.csv",'r');
while (!feof($fichier2))
{
$ligne2 =fgets($fichier2,4096);
$champ2=explode(";",$ligne2);
$mail2=$champ2[0];

$nf="D:/f_trie_detail3.csv";
$new_f=fopen($nf,'a+');

$fichier1=fopen("D:/ludo.csv",'r');
while(!feof($fichier1))
{
$delimiteur=";";
$ligne1 =fgets($fichier1,4096);
$champ1=explode(";",$ligne1);
//echo "$champ[0]<br/>";
$mail=$champ1[0];

//print_r($mail."<br>");

$i=0;
if(preg_match('/'.$mail.'/', $mail2))
{
$ecrit=fwrite($new_f,"'$champ2[0]'.'$champ2[1]'.'$champ2[2]'.'$champ2[3]'.'$champ2[4]'");
$i++;
}

}
fclose($fichier1);
echo "total mails =$i";
fclose($new_f);
}
fclose($fichier2);

?>
A voir également:

1 réponse

jostem
 
ce qui me choque dans ton traitement c'est que tu ouvres à chaque fois ton fichier3 car il est dans la boucle principale sur fichier2. Il faudrait l'ouvrir au début et le fermer à la fin seulement.

Quelle est la valuer de ta variable i ?
0