Supprimer une ligne dans un fichier texte.

oversid3 Messages postés 3 Date d'inscription jeudi 30 avril 2009 Statut Membre Dernière intervention 3 mars 2011 - 3 mars 2011 à 17:25
frenzounet Messages postés 5 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 11 mars 2011 - 10 mars 2011 à 21:46
Bonjour a tous.

Un petit topo sur le contexte :
- Je suis debutant en PHP ( cours demarré depuis 3 semaines )
- Nous travaillons actuellement sur un forum vraiment basique ou l'ensemble des informations sont stockées dans des fichiers texte.

Nous avons donc un moyen d'ajouter un topic, qui ajoute simplement une ligne de plus dans le fichier topics.txt
Mon soucis est de supprimer un topic, soit supprimer une ligne dans ce meme fichier text.

Voici mon code pour cette partie a l'heure actuelle.
case 'DELETETOPICLIST':
if (!login_check()){
$output="FORBIDDEN";
break;
}
if (!file_exists("topics.txt")) break;
$lines=file("topics.txt");
foreach ($lines as $id=>$line){
$output.="{$line}
";
}
break;
case 'DELETETOPIC':
if (!login_check()){
$output="FORBIDDEN";
break;
}
if (isset($_GET['topicid'])) {
$id=$_GET['topicid'];
$line_number=$id+1;
$filename=("topics.txt");
function delete_line($filename, $line_number) {
$lines = fopen($filename);
unset($lines[$line_number]);
file_put_contents($filename, implode($lines));
}
file_put_contents("topics.txt", str_replace(6, "blabla", file_get_contents("topics.txt")));
}


Je recupere donc l'id auquel j'ajoute 1 ce qui me donne la ligne correspondante au topic. Reste a la supprimer, et encore mieux, viré l'espace que la suppression va engendré.

1 réponse

frenzounet Messages postés 5 Date d'inscription samedi 22 janvier 2011 Statut Membre Dernière intervention 11 mars 2011
10 mars 2011 à 21:46
Salut !

Je te conseille vivement de tout stocker sur base de donnée. Mysql est parfait, et les cours du site du zero te seront d'une grande aide ! il y a même un tuto pour créer un "fofo".
Ce que tu fait te fera progresser mais, c'est loin d'être la bonne solution.
0
Rejoignez-nous