Posez votre question Signaler

Effacer une ligne dans fichier texte en php [Résolu]

michaelminelli1 107Messages postés vendredi 28 décembre 2007Date d'inscription 6 avril 2011Dernière intervention - Dernière réponse le 18 mars 2010 à 11:36
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://static.commentcamarche.net/...
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
Lire la suite 
Réponse
+3
moins plus
Salut.

Voici en gros comment je ferais (non testé).
Ça peut te convenir ?

// charger le fichier dans un tableau 
$filePath = 'data.txt' 
$lignes = file($filePath); 

// rechercher/supprimer la ligne correspondant au nom indiqué dans le formulaire 
foreach ($lignes as $num => $data) { 
    if (  strpos  ( $data  ,  $_POST['nom'].';' ) === 0 ) { 
        unset $lignes[$num]; 
    } 
} 

// enregistrer ça dans le fichier 
$handle = fopen($filePath, 'w+'); 
fwrite ( $handle, implode  ("\n", $lignes) ); 
fclose($handle); 
Ajouter un commentaire
Réponse
+0
moins plus
Hello,

Merci c'est super ca marche :D j'ai juste rajouter 2 ligne pour effacer le fichier avant d'ajouter les donnée mais sinon ca marche impec.

<?php

// charger le fichier dans un tableau
$filePath = 'data.txt';
$lignes = file($filePath);

// rechercher/supprimer la ligne correspondant au nom indiqué dans le formulaire
foreach ($lignes as $num => $data) 
{
    if (strpos($data,'admin2'.';') === 0) 
	{
		echo $lignes[$num];
        unset($lignes[$num]);
    }
}

//J'efface le fichier texte
$filename = 'data.txt';
$handle = fopen($filename, "w");
fclose($handle);
//Je referme le fichier

// enregistrer ça dans le fichier
$handle = fopen($filePath, 'a');
fwrite ( $handle, implode  ("\n", $lignes) );
fclose($handle);
?>


Ecore merci et bonne journée
Ajouter un commentaire
Ce document intitulé «  Effacer une ligne dans fichier texte en php  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.