Bon, si tu affiche le contenu, tu vas avoir tout le contenu sans réelles séparations entre les lignes.
Tu peux séparer les lignes et enregistrer tout ça dans un tableau indexé de la manière suivante. Imaginons un fichier texte comme ceci:
Ligne de texte 01
Ligne de texte 02
Ligne de texte 03
Ligne de texte 04
Ligne de texte 05
Ligne de texte 06
Ligne de texte 07
Ligne de texte 08
Ligne de texte 09
Ligne de texte 10
Ligne de texte 11
Ligne de texte 12
Ligne de texte 13
Ligne de texte 14
Ligne de texte 15
Ligne de texte 16
Ligne de texte 17
Ligne de texte 18
Ligne de texte 19
Ligne de texte 20
Ligne de texte 21
Ligne de texte 22
Ligne de texte 23
Ligne de texte 24
Ligne de texte 25
Ligne de texte 26
Ligne de texte 27
Ligne de texte 28
Ligne de texte 29
Ligne de texte 30
Rien de transcendant. Maintenant, reprennons ton code et ajoutons-y quelques détails:
<?php
// Lit un fichier, et le place dans une chaîne
$filename = "texte.txt";
$handle = fopen ($filename, "r");
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
$tableau = explode("\n", $contents);
?>
<pre>
<?php
var_dump($tableau);
?>
</pre>
À l'affichage, tu vas voir ceci:
Code : Tout sélectionner
array(31) {
[0]=>
string(18) "Ligne de texte 01
"
[1]=>
string(18) "Ligne de texte 02
"
[2]=>
string(18) "Ligne de texte 03
"
[3]=>
string(18) "Ligne de texte 04
"
[4]=>
string(18) "Ligne de texte 05
"
[5]=>
string(18) "Ligne de texte 06
"
[6]=>
string(18) "Ligne de texte 07
"
[7]=>
string(18) "Ligne de texte 08
"
[8]=>
string(18) "Ligne de texte 09
"
[9]=>
string(18) "Ligne de texte 10
"
[10]=>
string(18) "Ligne de texte 11
"
[11]=>
string(18) "Ligne de texte 12
"
[12]=>
string(18) "Ligne de texte 13
"
[13]=>
string(18) "Ligne de texte 14
"
[14]=>
string(18) "Ligne de texte 15
"
[15]=>
string(18) "Ligne de texte 16
"
[16]=>
string(18) "Ligne de texte 17
"
[17]=>
string(18) "Ligne de texte 18
"
[18]=>
string(18) "Ligne de texte 19
"
[19]=>
string(18) "Ligne de texte 20
"
[20]=>
string(18) "Ligne de texte 21
"
[21]=>
string(18) "Ligne de texte 22
"
[22]=>
string(18) "Ligne de texte 23
"
[23]=>
string(18) "Ligne de texte 24
"
[24]=>
string(18) "Ligne de texte 25
"
[25]=>
string(18) "Ligne de texte 26
"
[26]=>
string(18) "Ligne de texte 27
"
[27]=>
string(18) "Ligne de texte 28
"
[28]=>
string(18) "Ligne de texte 29
"
[29]=>
string(18) "Ligne de texte 30"
}
Comme tu peux voir, chaque ligne est isolée : attention cependant à un détail: les index de $tableau commencent à 0 pour la ligne 1 du fichier.
Il te reste donc maintenant à définir quelles lignes tu veux supprimer et à créer une boucle pour créer le contenu du nouveau fichier en sautant les lignes à supprimer: puis tu ré-écris le fichier avec fwrite() en écrasant l'ancien. Il faudra pour celà l'ouvrir non pas en mode "r" mais "w" ou "w+"