Page 1 sur 1

Traiter un fichier CSV ligne/ligne et col/col

Posté : 29 mars 2006, 17:18
par Willteck
Voici mon code
<?
$fichier = 'fichier.csv';

	 /* On ouvre le fichier à importer en lecture seulement */
	 if (file_exists($fichier))
	     {
	     $fp = fopen($fichier, "r");
	     }
	 else
	     { /* le fichier n'existe pas */
	       echo "Fichier introuvable !<br>Importation stoppée.";
	       exit();
	     }
	      
	     $fichier = fgets($fp);
		    
		    for($i=0; $i<1; $i++)
		    {
			    
		    $contenu = str_replace("\r\n", '$$', $fichier);
		    $contenu = str_replace(';1$$', ";1\r\n", $fichier);
		    $contenu = str_replace(';$$', ";\r\n", $fichier);
		     
		    echo $contenu;
		    }
		  
	     /* Fermeture */ 
	     fclose($fp); 
?>
Voila je voudrais donc appliquer ce que j'ai mis avec str_replace a tout le contenu du document. Ce que je veux faire c'est formater le texte pour avoir sur chaque ligne le contenu dont j'ai besoin sans retour a la ligne qui fausserait le traitement.

Merci

Re: Traiter un fichier CSV ligne/ligne et col/col

Posté : 29 mars 2006, 17:47
par jpaul
Avec fgets tu lis une ligne, pour traiter tout le fichier, il faut faire une boucle jusqu'à la fin de fichier.
Pour les retours à la ligne la fonction trim devrait te les supprimer.
Ca donnerait le code suivant (les lignes ajoutées ou modifiées sont en colonne 1....
<?
$fichier = 'fichier.csv';

	 /* On ouvre le fichier à importer en lecture seulement */
	 if (file_exists($fichier))
	     {
	     $fp = fopen($fichier, "r");
	     }
	 else
	     { /* le fichier n'existe pas */
	       echo "Fichier introuvable !<br>Importation stoppée.";
	       exit();
	     }


while (!feof ($fd)) {


	      
//	     $fichier = fgets($fp);
$fichier = trim(fgets($fp));
		    
		    for($i=0; $i<1; $i++)
		    {
			    
		    $contenu = str_replace("\r\n", '$$', $fichier);
		    $contenu = str_replace(';1$$', ";1\r\n", $fichier);
		    $contenu = str_replace(';$$', ";\r\n", $fichier);
		     
		    echo $contenu;
		    }
}
		  
	     /* Fermeture */ 
	     fclose($fp); 
?>

Re: Traiter un fichier CSV ligne/ligne et col/col

Posté : 29 mars 2006, 18:13
par Invité
.
<?
while (!feof ($fd)) {

		    $contenu = str_replace("\r\n", '$$', $fichier);
modifié	    $contenu = str_replace(';1$$', ";1\r\n", $contenu);
modifié	    $contenu = str_replace(';$$', ";\r\n", $contenu);
		     
		    echo $contenu;
		    }

?>
Ce serait pa plus juste ca ? car mon texte n'est pas formater en faite, que je le vois en html. Comment faire pour que ce j'ai mis soit formaté correctement mais dans le fichier meme cette fois, je dois rajouter fwrite a kelle endroit ?