[RESOLU] Supprimer premiere ligne d'un fichier txt

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Supprimer premiere ligne d'un fichier txt

Re: Supprimer premiere ligne d'un fichier txt

par AB » 23 juil. 2013, 17:11

Pour finir, je ne dois pas fermer le fichier txt avec fclose ?
Nan, avec les fonctions comme file, file_put_contents, file_get_contents, etc. pas besoin de spécifier que l'on ouvre ou que l'on ferme le fichier, cela se fait automatiquement.

Re: Supprimer premiere ligne d'un fichier txt

par fatalfury » 23 juil. 2013, 17:06

En effet, ça marche. Je pensais que c'est plus lourd que ça.
J'ai ajouté la condition des 10 lignes :
<?
$filename="test.txt"; // nom du fichier
$file = file($filename); // la fonction file, lit le fichier et met chaque ligne de celui-ci dans un tableau

$nbligne = count($file); // compter nb lignes
if($nbligne > 10)
{
unset($file[0]); // supprime la première ligne si le nb de lignes est supérieur à 10
}

file_put_contents($filename, $file); // réinsère les lignes dans le fichier, ça écrase l'ancien fichier.
?>
Pour finir, je ne dois pas fermer le fichier txt avec fclose ?

Re: Supprimer premiere ligne d'un fichier txt

par Zahnzao » 23 juil. 2013, 12:14

Complet c'est à dire ?

Cela ne fonctionne pas tel quel ?
$filename="fichier.txt"; // ton fichier
$file = file($filename); // la fonction file, lit ton fichier et met chaque ligne de celui ci dans un tableau
unset($file[0]); // supprime la première ligne du tableau (qui correspond à la première ligne de ton fichier)
file_put_contents($filename, $file); // réinsère les lignes dans le fichier, ça écrase l'ancien fichier. 
Après test chez moi fonctionne parfaitement. ;)

Re: Supprimer premiere ligne d'un fichier txt

par fatalfury » 23 juil. 2013, 00:19

Salut,

j'avais déjà longuement cherché pour supprimer une ligne X d'un fichier, mais visiblement c'est impossible sans réécrire le fichier.

Pour moi, la meilleure solution reste:
$file = file($filename);
unset($file[0]);
file_put_contents($filename, $file);
;)
Intéressant. Tu peux mettre ton script complet, stp ?

Re: Supprimer premiere ligne d'un fichier txt

par moogli » 22 juil. 2013, 22:07

ou simplement sqlite si cela est suffisant ;)


@+

Re: Supprimer premiere ligne d'un fichier txt

par Zahnzao » 22 juil. 2013, 17:53

Salut,

j'avais déjà longuement cherché pour supprimer une ligne X d'un fichier, mais visiblement c'est impossible sans réécrire le fichier.

Pour moi, la meilleure solution reste:
$file = file($filename);
unset($file[0]);
file_put_contents($filename, $file);
Ou alors, passer à mysql :)

;)

Re: Supprimer premiere ligne d'un fichier txt

par schim59 » 22 juil. 2013, 09:42

Bonjour,
tu crées un nouveau fichier et tu le renomme après avoir effacé l'ancien.
Mais je trouve que le recopiage par une itération est moins "lourd", non ?
Bonne journée.

Supprimer premiere ligne d'un fichier txt

par fatalfury » 21 juil. 2013, 15:44

Bonjour,
J'utilise un fichier texte pour stocker les scores d'un jeu en php.
Exemple :
Jerome : 8
Sophie : 3
David : 9
Julien : 6

Pour éviter que ce fichier ne devienne trop lourd, j'aimerais supprimer la première ligne du fichier texte quand le nombre de lignes dépasse 10.
Comment fait-on ?

Si possible sans utiliser la méthode du recopiage (car risque d'effacement intégral en cas de lenteur du serveur).