Afficher les 10 dernières lignes d'un fichier [Résolu] - PHP - Programmation
Marsh Posté le 16-04-2008 à 12:25:22
3e paramètre de fseek()
Marsh Posté le 16-04-2008 à 12:36:06
Merci de m'avoir répondu
SEEK_END je présume,
Code :
|
Cela me renvoit 71 sachant que mon fichier test ressemble à cela mais ne m'affiche rien car je pense que le 71 doit être un \n.
Code :
|
Alors comment puis-je procéder pour afficher les 9 ligne au-dessus de sa position actuelle.
Cordialement,
Marsh Posté le 16-04-2008 à 12:40:28
Voir commentaires de la doc PHP, il y a des gens qui parlent de ça (sur la doc en)
Marsh Posté le 16-04-2008 à 13:14:59
Autre solution, probablement moins optimale (mais aussi moins prise de tête) :
Code : |
Marsh Posté le 16-04-2008 à 13:16:59
fseek($open,0,SEEK_END);
placera le pointeur a la fin du fichier.
a mon avis c'est pas un /n mais un eof...
utilise une valeur négative pour le 2eme argument si tu veu remonter le pointeur de x octets...
pour mieux comprendre:
$open = fopen($file,'r'); //ouvre le fichier
fseek($open,-50,SEEK_END); //place le pointeur 50 octets avant la fin du fichier
$pos = ftell($open); //recupère la position du pointeur ([taille du fichier en octets] - 50)
$data = fgets($open,4096); //recupère le contenu de la ligne (jusqu'au prochain /n) a partir de l'emplacement du pointeur
$pos2 = ftell($open); //recupère la position du pointeur [dernière position connue + nombre d'octet de la ligne lue]
echo 'position du pointeur avant lecture: ',$pos,'<br />';
echo 'donnee lues: ',$data,'<br />';
echo 'position du pointeur apres lecture: ',$pos2,'<br />';
Marsh Posté le 16-04-2008 à 15:09:38
effectivement, cela me renvoit bien une ligne, mais il se trouve que des lignes de log n'ont pas forcément les mêmes longueurs.
Je suis dsl, je ne comprend pas tout.
On déplace le curseur en fonction des octets, et non en fonction des lignes.
Quand je change la valeur de la position , 50 donne 8h mais si je met 49 j'obtient h.
Marsh Posté le 16-04-2008 à 16:11:25
Effectivement sielfried, ta solution est la plus rapide et la plus simple.
sielfried a écrit : Autre solution, probablement moins optimale (mais aussi moins prise de tête) :
|
Merci à tous,
Marsh Posté le 16-04-2008 à 12:21:14
Bonjour à tous,
Je cherche à afficher les 10 dernières lignes d'un fichier csv de log pour ensuite afficher sur un page.
J'ai fait des recherches et je pense devoir utiliser FSEEK mais je ne comprend pas comment m'en servir puisque le fichier n'a jamais la même taille.
Pourriez vous me donner une piste svp.
Merci d'avance,
Codialement,
Message édité par akalaan le 16-04-2008 à 16:12:00