Probleme php
emixammax
Messages postés
29
Statut
Membre
-
Heliotte Messages postés 1561 Statut Membre -
Heliotte Messages postés 1561 Statut Membre -
Bonjour, je suis en train de faire un script pour modifier une ligne dans un fichier texte. Le probleme c'est que ca modifie bien mais quand j'essaye de reecrire dans le fichier ca ne modifie pas. voici mon code
if ($monfichier = fopen("fichier.txt", "r")) {
$contenu = fread($monfichier, filesize("fichier.txt"));
$contenu = explode(PHP_EOL, $contenu); /* PHP_EOL contient le saut à la ligne utilisé sur le serveur (\n linux, \r\n windows ou \r Macintosh */
fclose($monfichier);
for ($i = 0; $i <count($contenu); $i++) {
str_replace("test","test32",$contenu[$i]);
}
$contenu = array_values($contenu); /* Ré-indexe l'array */
/* Puis on reconstruit le tout et on l'écrit */
$contenu = implode(PHP_EOL, $contenu);
$monfichier = fopen("fichier.txt", "w+");
fwrite($monfichier, $contenu);
fclose($monfichier); // On ferme le fichier
} else {
echo "impossible d'ouvrir le fichier";
}
A voir également:
- Probleme php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
2 réponses
1) Je pense que
2) Essaie en donnant deux noms de variables à "$contenu"
Par exemple:
- "$contenu1", ARRAY qui contiendra tout le fichier
- "$contenu2", STRING qui rassemble les éléments de ton tableau en une seule et unique chaîne !
Dis-nous si ça fonctionne !
$contenu = array_values($contenu); /* Ré-indexe l'array */ne sert à rien dans ce cas, car il indexe les valeurs numériques .. qui sont déjà dans cet ordre !
2) Essaie en donnant deux noms de variables à "$contenu"
Par exemple:
- "$contenu1", ARRAY qui contiendra tout le fichier
- "$contenu2", STRING qui rassemble les éléments de ton tableau en une seule et unique chaîne !
Dis-nous si ça fonctionne !
C'est bon ca a marcher avec cette methode mais maintenant je voudrais modifier plusieur ligne dans mon fichier texte mais je n'y arrive toujours pas ca me duplique mes ligne avec l'ancienne ligne et la nouvelle.
function ModifFichier()
{
$array = array();
if ($monfichier=fopen("fichier.txt", "r")) {
$contenu=fread($monfichier, filesize("fichier.txt"));
$contenu = explode(PHP_EOL, $contenu);
fclose($monfichier);
for ($i=0;$i<count($contenu);$i++)
{
$array.=str_replace('test','test1',$contenu[$i]).PHP_EOL;
}
/* Puis on reconstruit le tout et on l'écrit */
$monfichier = fopen("fichier.txt", "w+");
fwrite($monfichier, $array);
fclose($monfichier); // On ferme le fichier
} else {
echo "impossible d'ouvrir le fichier";
}
}
J'ai regardé ton code de plus près:
1) Cela n'a peut-être pas son importance, mais pour mes tests, je l'ai enlevé :
2) Es-tu tu certain que tu trouves plusieurs fois cette chaîne de caractères dans ton fichier d'entrée ?
1) Cela n'a peut-être pas son importance, mais pour mes tests, je l'ai enlevé :
.PHP_EOL;de
$array.=str_replace('test"','test1',$contenu[$i]).PHP_EOL;
2) Es-tu tu certain que tu trouves plusieurs fois cette chaîne de caractères dans ton fichier d'entrée ?
test"avec la double quote ?