Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1124 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Remplacer / Supprimer des données dans un fichier txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplacer / Supprimer des données dans un fichier txt

n°1397897
PedroBD
Posté le 30-06-2006 à 11:50:13  profilanswer
 

Bonjour,
 
Trois questions (simples je pense):
 
1- -Remplacer des données:
 
J'ai un fichier texte contenant des données de comptes d'utilisateurs. Je voudrais, en très peu de manipulations, rechercher un alias dans le fichier et remplacer des données correspondant à cet alias par d'autres.
Pb: Seuls les alias sont uniques (il peut y avoir le même nom ou mdp pour 2 alias différents).
 
Ex des donnees de mon fichier:
-----------------
alias1/nom1/mdp1
alias2/nom2mdp2
alias3/nom3/mdp3
-----------------
 
2- -Supprimer des données:
Sur le même principe que le remplacement, je voudrais maintenant supprimer ces données (dont l'alias éventuellement).
 
J'ai déjà trouvé des fonctions comme str_replace ou preg_replace, mais je n'arrive pas à bien les utiliser.
 
Si quelqu'un peut me conseiller sur les bonnes fonctions à utiliser, je vous remercie!
 
Pour info, je suis sous PHP5.
 
3- La petite question bonus
Quel est le symbole qui permet un retour chariot en php dans un fichier txt? J'essaye fwrite($fichier,"\n" ) et ça ne marche pas!
 
Merci d'avance


Message édité par PedroBD le 30-06-2006 à 12:09:46
mood
Publicité
Posté le 30-06-2006 à 11:50:13  profilanswer
 

n°1397920
afbilou
pouet your life
Posté le 30-06-2006 à 12:11:36  profilanswer
 

Si tu peux utiliser une base de données pour faire cela ce serait préférable.
 
Néanmoins, avec des expressions régulieres :
 
Etant en PHP5 tu vas pouvoir utiliser file_get_contens() pour affecter a une variable le contenu de ton fichier texte et file_put_contents pour ecrire dans un fichier texte le contenu d'une variable qui contiendra ton texte modifié.
 
pour modifier à la ligne 'alias2' le 2eme champ 'nom2' par 'toto' tu peux faires cela sur une chaine de caracteres :
 
preg_replace('#^(alias2)/([^/]+)/([^/]+)$#m', '\1/toto/\3', $texte)
 
l'algo revient donc a faire :
 
$texte = file_get_contents('fichier.txt');
preg_replace('#^(alias2)/([^/]+)/([^/]+)$#m', '\1/toto/\3', $texte)
file_put_contents('fichier.txt' , $texte);
 
pour supprimer les données c'est a peu de chose pres la meme chose :
preg_replace('#^alias2/[^/]+/[^/]+$#m', '', $texte)
 
Mais cela va laisser une ligne blanche dans le fichier texte.
 
Un solution serait d'utiliser la fonction file() qui retourne un tableau ou chaque case contient une ligne du fichier texte. Ensuite tu supprimes la ligne du tableau qui contient le bon alias. Enfin tu ecrases ton fichier texte a partir de ton nouveau tableau.


Message édité par afbilou le 30-06-2006 à 12:13:14
n°1397922
PedroBD
Posté le 30-06-2006 à 12:14:04  profilanswer
 

Merci de ton aide, je vais tester tout ceci!

n°1397937
afbilou
pouet your life
Posté le 30-06-2006 à 12:23:08  profilanswer
 

tu peux utiliser array_filter pour supprimer la ligne du tableau qui commence par l'alias que tu souhaites :http://fr2.php.net/manual/fr/function.array-filter.php
 
>Tout ceci est un peu lourd je te le rappelle : si tu peux passer par une base de données fait le car ca te simplifiera grandement la vie.

n°1397947
PedroBD
Posté le 30-06-2006 à 12:30:31  profilanswer
 

En fait je passe par un fichier texte pour sauver les données des comptes, mais je vais réfléchir à la solution de migrer vers une bd...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Remplacer / Supprimer des données dans un fichier txt

 

Sujets relatifs
fichier de conf[Applet] Ouvrir un fichier local dans un navigateur web
Remplir un fichier avec du textebase de données MYSQL avec champs verticaux
ordonner les données d'un tableauFormat des clés d'un fichier properties
code d'erreur copie de fichier[Script bat]Commande d'instrument, redirection vers fichier
"preg_replace" dans un fichier textesupprimer les points dans une cellule
Plus de sujets relatifs à : Remplacer / Supprimer des données dans un fichier txt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR