Ecrire à partir de "l'avant dernière ligne" dans un fichier

jipe
Invité n'ayant pas de compte PHPfrance

22 juil. 2008, 16:46

Bonjour à tous,

J'ai à ma disposition un fichier php quelconque, qui est logiquement structuré de façon classique :

<?php

code

?>

Mon objectif est de pouvoir écrire des données dans ce fichier juste avant la balise "?>"

Exemple :


<?php

code existant

mon nouveau code

?>

Pour l'instant je n'arrive pas à écrire à partir de l'avant dernière ligne :

Résultat :

<?php

code existant

?>
mon nouveau code

Après analyse, je pensais résoudre mon problème de la sorte :

- stocke dans une variable la dernière ligne
- effacer la dernière ligne
- écrire ce que tu as à écrire
- réecrire la derniere ligne grâce à la variable..

Ou utiliser : fseek..

Mais plus facile à dire cas faire.

Voilà des conseils, idées ?

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

22 juil. 2008, 19:44

Y a plus simple :
<?php

// Lire l'existant
$code_existant = file_get_contents("programme1.php");

// Nouveau code à ajouter
$nouveau_code = "//.... écrire ici le nouveau code php ...." ."\r\n ?>";  //avec fin php

// Remplacer le dernier signe PHP par le nouveau code
$code_existant = preg_replace('/(\?>)$/i', $nouveau_code, $code_existant);

//  Ecrire la modif
file_put_contents("programme1.php", $code_existant);

?> 
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 juil. 2008, 19:45

De plus, le ?> est facultatif si ton fichier ne contient que du PHP ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

jipe
Invité n'ayant pas de compte PHPfrance

23 juil. 2008, 14:45

ioo

Merci à vous deux.

Problème réglé.

Sinon je pensais aussi à un file(), tableau associatif.


Bonne journée

jipe

fatima.KACHIRI
Invité n'ayant pas de compte PHPfrance

23 avr. 2014, 15:32

Merci c'est bien marché