Rechercher : dans
Par :

PHP: Remplacer une chaîne dans un fichier php

Dernière réponse le 14 oct 2008 à 11:40:34 le sparte, le 5 jan 2008 à 12:38:16 
 Signaler ce message aux modérateurs

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!

Configuration: Mac OS X
Firefox 2.0.0.11

Meilleures réponses pour « PHP: Remplacer une chaîne dans un fichier php » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
Il est possible de récupérer le code source PHP d'un site VoirMythe Un utilisateur peut récupérer le code source PHP d'un site web comme il peut récupérer le code HTML. Réalité FAUX Explications Les fichiers PHP (ASP, JSP, etc.) sont des fichiers interprétés côté serveur, ce qui signifie que le serveur...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

le père, le 5 jan 2008 à 21:06:10

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é

Répondre à le père

2

le sparte, le 5 jan 2008 à 23:11:12
  • +1

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!

Répondre à le sparte

5

 new morning, le 14 oct 2008 à 11:40:34

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.

Répondre à new morning

3

alain42, le 6 jan 2008 à 10:40:30

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.

Répondre à alain42

4

le sparte, le 6 jan 2008 à 18:19:03

Ok, merci beaucoup ;-)

Répondre à le sparte