PHP: Remplacer une chaîne dans un fichier php

Résolu/Fermé
le sparte - 5 janv. 2008 à 12:38
 hisuka_melina - 17 avril 2015 à 11:23
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!
A voir également:

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
new morning Messages postés 127 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 15 mai 2013 19
14 oct. 2008 à 11:40
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.
0
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é
1
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.
1
Ok, merci beaucoup ;-)
1
hisuka_melina
17 avril 2015 à 11:23
SAlut le sparte, Est que je peux avoir ton aide svp ...
0