Lire un fichier

Résolu
mouloudikhaled Messages postés 39 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 28 février 2009 - 13 mars 2008 à 15:48
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 14 mars 2008 à 03:03
Bonjour,
Est ce qu'il ya un script en PHP qui nous permet de lire uniquement les 15 dernières lignes d'un fichier.
Merci

12 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 mars 2008 à 23:34
salut
$a=file($filename);
$s=count($a);
for ($i=$s-15;$i<$s;$i++){
traiter_ligne($a[$i]);
}

aucun rapport avec implode ici... et explode+fgets ferait un script lent
3
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
13 mars 2008 à 17:03
Bonjour,

Pour lire un fichier fopen() est après tu peux faire un implode avec \n pour connaitre le nombre le ligne du fichier.

Je pense que tu peux bien avancer avec ça

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
0
mouloudikhaled Messages postés 39 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 28 février 2009
13 mars 2008 à 17:10
jé rien pigé a ce que tu parle. Je veux lire justes les dernières lignes. Je veux pas connaitre le nombre de ligne.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
13 mars 2008 à 17:24
[auteur/MOULOUDIKHALED/1193538.aspx
]Mouloudikhaled, je te conseille
1) d'apprendre à parler français
2) d'apprendre la politesse

pour ta question, une boucle pour remonter à l'envers depuis la fin puis fgets()  http://fr.php.net/manual/fr/function.fgets.php, mais c'est pas forcément très pratique. Un explode( ) sera peut-être plus simple.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mouloudikhaled Messages postés 39 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 28 février 2009
13 mars 2008 à 17:32
Désolé pour la politesse, mais ce qui est du français, je m'y connais et je sais m'exprimé.
Merci pour le lien Je vais voir
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
13 mars 2008 à 17:33
OK debrouilles-toi!!!

Apprend la politesse et je t'aiderais!!!

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 mars 2008 à 18:52
Hello,

moi je ferais un file puis un array_slice().
0
mouloudikhaled Messages postés 39 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 28 février 2009
13 mars 2008 à 19:14
Désolé malalam mais je suis faible dans la catégorie systeme de fichier. Peut tu m'expliquer. Merci
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 mars 2008 à 19:51
Regarde la doc sur file(), qui renvoie un tableau avec chaque ligne de ton fichier dans une entrée du tableau.
Puis de array_splice(), qui extrait une portion de tableau.
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
13 mars 2008 à 23:43
>>aucun rapport avec implode ici.

Autant pour moi j'ai confonfu les 2.

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
0
mouloudikhaled Messages postés 39 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 28 février 2009
13 mars 2008 à 23:50
Merci coucou747.
Tu fais du bon travail ;)
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
14 mars 2008 à 03:03
Lol, genre on bosse pour toi ^^

Coucou, pour chipoter sur la question de la rapidité d'exécution, c'est vrai que explode("/r/n", $string) prendrait un peu de temps mais a priori pas plus qu'un file (plus approprié j'avoue ^^).

Mais la meilleure solution reste comme je le disais de partir de la fin du texte et de partir en arrière. Comme j'avais un peu de temps à perdre, je viens de proposer un snippet pour ça.

Sur un fichier volumineux (3000 lignes), c'est environ 20% plus rapide qu'un file( ) + count( ).

Et si l'on veut récupérer les dernières lignes d'une chaîne plutôt que d'un fichier,  pour ta méthode il faudrait faire un file_gets_content( ) + explode( ) pour en faire un tableau. Et dans ce cas la méthode de partir depuis la fin est environ 40% plus rapide.

à+
0
Rejoignez-nous