Effacer une ligne dans fichier texte en php

Signaler
Messages postés
13
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
13 janvier 2011
-
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
-
Bonjour,

Ca fait deja un moment que je cherche sur le web comment supprimer une ligne dans un fichier texte, je vous explique plus en details :

Ja'i un fichier texte "data.txt" qui comporte ces données (Je sais c'est idiot de mettre des utilisateurs dans un fichier texte mais c'est ce que l'on m'a demandé :D ):
admin;123;1;http://www.javascriptfr.com/g/logos/normal/logojs.png;
michael;123;2;;
fake;123;54;;
admin2;123;;;


Ce fichier est bien sur toujours en modification donc ne comporte pas un nombre de ligne fixe.

ma question est la suivante : comment faire pour supprimer la ligne correspondant a un nom d'utilisateur rentrer par exemple dans un formulaire?

Merci d'avance pour votre precieuse aide et Bonne Journée

2 réponses

Messages postés
292
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013
1
Salut;
il te faudrait utiliser lesfonctions php "fopen", "fread" et "fwrite" qui permettent de manipuler de manipuler les fichiers textes, il te faudra ensuite repérer tes lignes en découpant tout ça en tableau avec la fonction "explode".
Mais franchement le XML à été créé justement pour ce genre de manipulations, il serait peut-être temps de l'utiliser.
bon courage.
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Le plus simple c'est de rester en mode texte (parce que le XML ça reste plus lourd surtout que dans ce cas ce n'est pas du tout nécessaire) et d'utiliser un algorythme comme ceci :

<?php
$tab = file("data.txt");
$tonUser = "userASupprimer";

for ($i=0; $i<count($tab); $i++) {
if (substr($tab[$i],0,strpos($tab[$i], ';')) == $tonUser) {
unset($tab[$i]);
}
}

file_put_contents("data.txt", implode($tab));
?>