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é";
}
?>