PHP: Remplacer une chaîne dans un fichier php [Résolu/Fermé]

Signaler
-
 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!

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!
9
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
127
Date d'inscription
lundi 13 août 2007
Statut
Membre
Dernière intervention
15 mai 2013
18
Salut,

Tu as trouvée une meilleure solution ? Je suis en but devant le même type de pb et ça m'intéresse beaucoup.
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é
Bonjour,

oui il doit y avoir une autre methode, car la tienne n'est pas trop sécurisée, si un utilisateur peut modifier directement le code php ?


Par principe dans ton code php tu peux mettre des actions qui sont différentes suivant des choix utilisateur,orientes toi plutôt vers cela.
Ok, merci beaucoup ;-)

SAlut le sparte, Est que je peux avoir ton aide svp ...