Modifier un fichier texte en php

Modifier un fichier texte en php - PHP - Programmation

Marsh Posté le 08-01-2008 à 06:40:46    

Bonjour,
 
Je cherche à faire 'un script me permettant de modifier un fichier texte. Mes compétences en php sont moyennes.  
 
Mon fichier d'entrée ressemble à :
 
Ligne 1.
Ligne 2.
...
Ligne n.
 
Et j'aurais besoin en sortie de :
 
<+>1<$>(insérer ici une tabulation)Ligne 1.
<+>2<$>(insérer ici une tabulation)Ligne 2.
...
<+>n<$>(insérer ici une tabulation)Ligne n.
 
En gros il faudrait repérer le retour à ligne puis le remplacer par un retour à ligne et concat <+>[variable à incrémenter]<$> etc ... et ceci pour un nombre de lignes variable.
Un grand merci d'avance à ceux qui maitrisent ce language et pourraient m'aider en m'indiquant la voie à suivre ou me diriger sur un tuto proche de mon problème.


Message édité par animoo le 08-01-2008 à 07:05:24
Reply

Marsh Posté le 08-01-2008 à 06:40:46   

Reply

Marsh Posté le 08-01-2008 à 08:23:32    

le plus simple est de passer par u nfichier temporaire
 
tu lis une ligne du fichier source  
tu ecris la ligne modifié dans le fichier temp
 
une fois que tout le fichier source est lu , tu remplace le fichier source par le fichier temp


---------------

Reply

Marsh Posté le 08-01-2008 à 08:46:05    

Suffit de lire le fichier avec file
http://fr.php.net/file
Tu obtiens un tableau contenant les lignes de ton fichiers.
A partir de là, une boucle foreach avec une variable qui est incrémenté à chaque itération, pour créer la chaîne final.
Écrire la chaîne en question dans le fichier cible.

 

flo850> Un fichier temp est pas forcément justifiable dans tout les cas, faut voir.


Message édité par dwogsi le 08-01-2008 à 08:47:18

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 08-01-2008 à 08:47:34    

en meme temps si le fichier est gros, mieux vaut éviter de le charger en memoire


---------------

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed