Page 1 sur 1

remplacer un caractere sur l'ouverture d'un fichier texte

Posté : 09 nov. 2005, 16:56
par saebakun
Bonjour,

voilà j'ai un fichier texte qui contient des champs separés par des ; et je voudrias remplacer ça par des , voilà mon code:
<?
if (file_exists('test.txt'))
{

$chaine=fopen("test.txt","r+");

while ($ligne = fgets($chaine))

echo $ligne;

$ligne= str_replace(";" , "," , $ligne);

fclose($chaine);
}
else
{echo "raté";}

?>

Voilà donc il m'affiche bien les lignes mais il ne change rien ....

je suis en chmod 777 sur le txt aussi

Posté : 09 nov. 2005, 16:58
par DarkBlue
il ne change ren dans le fchier ? si c est ça que tu veux c est parce que tu n'as pas reecris le texte modifié dans le fichier .

Posté : 09 nov. 2005, 17:00
par saebakun
ha?

et comment je fais ça?

Posté : 09 nov. 2005, 17:03
par DarkBlue
<? fwrite($fichier,$texte);
// ou
fputs($fichier,$texte); ?>

Posté : 09 nov. 2005, 17:05
par pitt
De plus je pense que le echo étant avant le remplacement il t'afficheras des lignes non modifiees

Posté : 09 nov. 2005, 17:48
par saebakun
voilà la modif
<?
if (file_exists('test.txt'))
{

$chaine=fopen("test.txt","r+");

while ($ligne = fgets($chaine))

echo $ligne;

$ligne= str_replace(";" , "," , $ligne);

fputs($chaine,$ligne);
fclose($chaine);
}
else
{echo "raté";}

?>

mais toujours rien

Posté : 09 nov. 2005, 17:50
par DarkBlue
c est pas
fputs($chaine,$lignes) 
qu il faut mettre mais
fputs("test.txt",$lignes);

Posté : 09 nov. 2005, 17:56
par saebakun
il me met ça:


Warning: fputs(): supplied argument is not a valid stream resource in /home/admin/www/html/csv/csv2sql.php on line 13

Posté : 09 nov. 2005, 18:14
par saebakun
<?
if (file_exists('test.txt'))
{

$chaine=fopen("test.txt","r+");
$test2=fopen("test2.txt,"w");

while ($ligne = fgets($chaine))

$up= str_replace(";" , "," , $ligne);

fputs($test2,$up);

fclose($test2);
fclose($chaine);
}
else
{echo "raté";}

?>


voilà il m'insert bien les lignes modifiers mais il ne prend plus en compte les retours à la ligne....

elles sont toutes d'affillé...

comment je peux faire pour qu'après chaque ligne il me fasse un retour à la ligne?

Posté : 09 nov. 2005, 18:18
par DarkBlue
$ligne=nl2br($lignes) 
juste apres l ouverture du fichier pour que tout les sauts de liignes soit biien conservés

Posté : 09 nov. 2005, 18:29
par saebakun
ça ne fonctionne pas non

Posté : 09 nov. 2005, 20:01
par Ultiny
<? 
if (file_exists('test.txt')) 
{

$chaine=fopen("test.txt","r+"); 

$ligne= str_replace(";" , "," , $ligne);

fwrite($chaine, $ligne);

fclose($chaine); 
} 
else 
{echo "raté";} 

?>

Posté : 09 nov. 2005, 20:18
par Ultiny
Nan j'ai changé d'idée finalement, en plus l'autre marchait pas...
<?php

if (file_exists("./test.txt")) {

	$line = file_get_contents("./test.txt");

	$str = fopen("./test.txt","w+"); 
	$line = str_replace(";", ",", $line); 

	fwrite($str, $line);
	fclose($str);
} 
else {
	echo "raté";
} 

?>