PHP: Remplacer une chaîne dans un fichier php
Résolu
le sparte
-
hisuka_melina -
hisuka_melina -
Bonjour,
Je tente de créer un panneau d'administration permettant à un utilisateur de modifier certains paramètres d'un script. Pour ce faire, je cherche à remplacer dans un fichier PHP une chaîne de caractère par une autre via un script PHP. Voici ci-dessous ce à quoi je suis parvenu:
<?php
$fichier="test.php";
$text=fopen($fichier,'w+') or die("Fichier manquant");
$contenu=file_get_contents($fichier);
print($contenu);
$contenuMod=str_replace('salut', 'copain', $contenu);
fwrite($text,$contenuMod);
fclose($text);
?>
En gros, je récupère le contenu du fichier sous forme de chaîne, modifie les occurrences dans cette dernière et réécris dans le fichier la nouvelle chaîne. Malheureusement, cela ne marche pas. Avec w+, le fichier est tout simplement effacé et avec a+ le contenu du fichier est doublé et la modification s'ajoute à la fin du fichier. Bref, je ne crois pas que mon idée soit la bonne. Je suis donc preneur de toute aide charitable :)
Merci d'avance!
Je tente de créer un panneau d'administration permettant à un utilisateur de modifier certains paramètres d'un script. Pour ce faire, je cherche à remplacer dans un fichier PHP une chaîne de caractère par une autre via un script PHP. Voici ci-dessous ce à quoi je suis parvenu:
<?php
$fichier="test.php";
$text=fopen($fichier,'w+') or die("Fichier manquant");
$contenu=file_get_contents($fichier);
print($contenu);
$contenuMod=str_replace('salut', 'copain', $contenu);
fwrite($text,$contenuMod);
fclose($text);
?>
En gros, je récupère le contenu du fichier sous forme de chaîne, modifie les occurrences dans cette dernière et réécris dans le fichier la nouvelle chaîne. Malheureusement, cela ne marche pas. Avec w+, le fichier est tout simplement effacé et avec a+ le contenu du fichier est doublé et la modification s'ajoute à la fin du fichier. Bref, je ne crois pas que mon idée soit la bonne. Je suis donc preneur de toute aide charitable :)
Merci d'avance!
A voir également:
- PHP: Remplacer une chaîne dans un fichier php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
Parfait, ça marche avec le code suivant. Effectivement, il suffisait d'y penser.
<?php
$fichier="test.php";
//ouverture en lecture et modification
$text=fopen($fichier,'r') or die("Fichier manquant");
$contenu=file_get_contents($fichier);
$contenuMod=str_replace('salut', 'copain', $contenu);
fclose($text);
//ouverture en écriture
$text2=fopen($fichier,'w+') or die("Fichier manquant");
fwrite($text2,$contenuMod);
fclose($text2);
?>
Existerait-il par contre une manière plus élégante de le faire (via certaines fonctions propres à PHP, ou avec des tableaux)?
Merci d'avance!
<?php
$fichier="test.php";
//ouverture en lecture et modification
$text=fopen($fichier,'r') or die("Fichier manquant");
$contenu=file_get_contents($fichier);
$contenuMod=str_replace('salut', 'copain', $contenu);
fclose($text);
//ouverture en écriture
$text2=fopen($fichier,'w+') or die("Fichier manquant");
fwrite($text2,$contenuMod);
fclose($text2);
?>
Existerait-il par contre une manière plus élégante de le faire (via certaines fonctions propres à PHP, ou avec des tableaux)?
Merci d'avance!
Bonjour
Ouvre le fichier une première fois en lecture ('r')
après l'avoir lu, referme-le
rouvre-le en w+ pour ré-écrire le contenu modifié
Ouvre le fichier une première fois en lecture ('r')
après l'avoir lu, referme-le
rouvre-le en w+ pour ré-écrire le contenu modifié
Tu as trouvée une meilleure solution ? Je suis en but devant le même type de pb et ça m'intéresse beaucoup.