1 mai
Supprimer une ligne d’un fichier texte en PHP
Dans le cadre d’un projet personnel j’ai été amené à avoir besoin de pouvoir supprimer une ligne d’un fichier texte en particulier. Bien qu’ayant trouvé un script sur internet, celui-ci présentant quelques soucis je l’ai optimisé pour mon projet. Je vous propose donc de profiter également du fruit de mon travail pour vos différents projets.
function Effacer($fichier, $nb) //$fichier renseigne le nom du fichier, $nb renseigne la ligne à supprimer
{
$partie = ""; //initialisation de la variable $partie
if (file_exists("$fichier")) //si le fichier existe
{
$ligne = file($fichier); //mettre toute les lignes du fichier dans un tableau
for($i = 0; $i < $nb; ++$i) //récupération des lignes avant la ligne à supprimer
{
$partie .= $ligne[$i];
}
for($i = $nb+1; $i < (count(file($fichier))); ++$i) //récupération des lignes après la ligne à supprimer
{
$partie .= $ligne[$i];
}
$id = fopen("$fichier", "w+"); //ouverture du fichier à modifier en mode écriture+
fputs($id, $partie); //ajouter la chaîne $partie dans le fichier à modifier
fclose($id); // fermeture du fichier
//return ok;
}
else //le fichier n'existe pas, on retourne une erreur
{
return 'Le fichier '.$fichier.'n\'a pas été trouvé.';
}
}
Afin d’utiliser la fonction, il vous suffit de l’appeler de la façon suivante :
Effacer($votre_fichier, $ligne_a_supprimer);
