IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Recupere les 10 dernières ligne d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Par défaut Recupere les 10 dernières ligne d'un fichier
    Bonjour à tous.
    J'ai un script qui effectue la lecture d'un répertoire pour ensuite m'afficher les 10 premières lignes des fichiers .txt disponible dans le dossier.
    Cependant, je voudrais recupérer uniquement les 20 dernières ligne du fichier.
    Pour l'instant j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $contenuTxt = fopen($url, 'r');	
    	for ($ligne = 1 ; $ligne <= 10 ; $ligne++)
    	{
    		$texte[] = fgets($contenuTxt); // Recupere les 10 premiere ligne du fichier
    	}
    	$stringTxt = implode("|", $texte); // Explose le tableau en chaine de caractère
    	$stringTxt = utf8_encode(strip_tags($stringTxt)); // encodage utf8 + nettoyage html
    	$stringTxt = str_replace(' ','',$stringTxt);// Nettoyage Espace
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut
    Bonjour,

    Une piste pourrait être une utilisation combiné des fonctions filesize et fseek.

    La première permettant de récupérer la taille d'un fichier et le second de modifier le pointeur à l'intérieur du fichier, et donc de partir de la fin.

    Un utilisateur propose une version PHP de la fonction UNIX tail, qui fait exactement ce que tu souhaites :

    http://fr2.php.net/manual/fr/function.fseek.php#86517

    Je n'ai pas testé ce qu'il propose.

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Juin 2009
    Messages : 104
    Par défaut
    et un truc du genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $MyFile = file($f);  // place the file in an array
    $nb = count($MyFile);    // count the number of lines or values
    $nb_voulu = 10 ; //
    $nb_start = $nb - nb_voulu - 1; // -1 parce que la première entrée est 0 (et non 1)
     
    $turn_while = 1;
    while ($turn_while <= $nb_voulu) {
       echo $MyFile[$nb_start].'<br>'; // echo ou ... l'action souhaitée 
       $turn_while++;
       $nb_start++;
    }
    suis pas une star des array, certain que le while peut être remplacer par mieux

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Par défaut Good
    Merci Cholopat

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut
    Si tu choisis la solution de Chocolat tu peux utiliser la fonction array_slice dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    $MyFile = file($f);  // place the file in an array
    $nb = count($MyFile);    // count the number of lines or values
    $nb_voulu = 10 ;
     
    $LastLines = array_slice($MyFile, $nb - $nb_voulu);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire les 20 dernières lignes d'un fichier texte
    Par David_24 dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 25/05/2009, 17h47
  2. Lire une les 3 dernières ligne d'1 fichier texte
    Par BECHE dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2009, 14h38
  3. Récupérer les X dernières lignes de mon fichier txt
    Par coincoin22 dans le forum Windows
    Réponses: 0
    Dernier message: 08/08/2007, 14h39
  4. lire les X dernières lignes d'un fichier.
    Par Empty_body dans le forum Langage
    Réponses: 6
    Dernier message: 13/06/2007, 11h58
  5. lire dans un fichier les 100 dernières lignes
    Par amarcil dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2007, 19h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo