[PHP]Concaténer 2 fichiers ligne par ligne

Résolu/Fermé
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 23 nov. 2010 à 11:39
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 23 nov. 2010 à 16:07
Bonjour,

Voila le sujet me parait clair.

J'ai un fichier "nom.txt" avec :

DUPONT
DUBOIS
BERTRAND

J'ai un fichier "prenom.txt" avec :

Jean
Charles
Maurice

Je souhaite mettre en place une fonction php qui me génère un fichier "client" avec :

DUPONT Jean
DEBOIS Charles
BERTRAND Maurice



3 réponses

Pourquoi cherche-tu compliquer avec tes fichiers texte alors qu'avec une base de donnée tu gagnerai ton temps
1
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
Modifié par bezourox le 23/11/2010 à 16:08
La solution :
function concatenation() 
   { 
    // Ouverture du fichier en lecture [option "r"] 
      $fd = @fopen("/home/test","r"); 
        // si fopen retourne faux c'est que le fichier 
       // ne peut être ouvert en lecture 
       if (!$fd) die("Impossible d'ouvrir le fichier test"); 
        //on ouvre le fichier suite en lecture 
    $fd2 = @fopen("/home/suite","r"); 
    //on ouvre le fichier result en écriture 
    $fd3 = @fopen("/home/result", "w"); 
    // si fopen retourne faux c'est que le fichier 
    // ne peut être ouvert en lecture 
    if (!$fd2) die("Impossible d'ouvrir le fichier suite"); 
    // si fopen retourne faux c'est que le fichier 
    // ne peut être ouvert en lecture 
    if (!$fd3) die("Impossible d'ouvrir le fichier result"); 
       $i = 1; // compteur de ligne 
        //Tant qu'on est pas arrivé à la dernière ligne 
       while (!feof($fd)) { 
                    // On lit une ligne du fichier 
                   // et en tout cas au maximum 300 caractères 
                   $lignefd1 = fgets($fd, 300); 
                                        //On supprime le retour à la ligne avant concaténation 
     $lignefd1 = preg_replace('(\r\n|\n|\r|\t)',' ',$lignefd1); 
                   $lignefd2 = fgets($fd2, 300); 
                    //on concatène  
     $resultat = $lignefd1.$lignefd2; 
     //On écrit la concaténation dans le fichier result 
     fputs($fd3, $resultat); 
     // On incrémente i 
           $i++; 
    } 
     
        // On a fini, on ferme !! 
        fclose($fd); 
    fclose($fd2); 
    fclose($fd3); 
   }
1
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
23 nov. 2010 à 11:45
Parce que justement je ne peux pas utiliser une base de donnée
0