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 :

Se placer en fin de fichier


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut Se placer en fin de fichier
    Bonsoir,

    J'affiche un fichiet texte dans un tableau,
    Je voudrai que ce soit la fin du fichier plutot
    que le début qui s'affiche.

    Pas trouvé de script je cherche un conseil

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    montre nous ce que tu affiches déjà

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Bonsoir nosferapti,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?PHP
    $fp = fopen("mem_invent.txt","r+");
    $aff_invent = fgets($fp,259); 
    fclose($fp); 
    echo $aff_invent;
    ?>
    Cela m'affiche bien le fichier, mais dans
    la cellule du tableau, je vois le début
    du fichier alors que je voudrai voir la fin !

    Comment se positionner en fin de fichier ?

  4. #4
    Membre averti Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Points : 325
    Points
    325
    Par défaut
    Salut,

    essaye de voir du côté de cette fonction fseek().

    http://fr3.php.net/manual/fr/function.fseek.php

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Bonsoir tibotibo69,

    La fonction fseek(), permet de se positionner
    dans le fichier ouvert pour la lecture ou l'écriture.

    J'ai peut être trouvé un truc : si il y avais une
    fonction ou un code qui permette de descendre
    l'ascenceur en bas, cela ferai l'affaire.

  6. #6
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par malabarbe Voir le message
    Bonsoir tibotibo69,

    La fonction fseek(), permet de se positionner
    dans le fichier ouvert pour la lecture ou l'écriture.

    J'ai peut être trouvé un truc : si il y avais une
    fonction ou un code qui permette de descendre
    l'ascenceur en bas, cela ferai l'affaire.
    ah d'accord, je n'avais pas compris ce que tu voulais faire
    tu veux afficher tout le fichier mais tu veux voir directement voir la fin, pour ça tu as besoin d'une ancre comme ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div>
    <?php echo file_get_contents('mem_invent.txt');?>
    </div>
    <div id="baspage"></div>
    et ensuite tu vas à l'URL
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    http://serveur/script.php#baspage

  7. #7
    Membre averti Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Points : 325
    Points
    325
    Par défaut
    Sinon il y a la fonction feof() qui permet de tester la fin d'un fichier.

    http://fr3.php.net/manual/fr/function.feof.php

    Je pense que le curseur reste positionné sur la dernière ligne.

    Essaye comme ça :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($f = fopen('myfile.txt', 'r')) do {
        // do any stuff here...
    } while (!feof($f));
    echo $line = fgets($f);
    fclose($f);

  8. #8
    Membre averti Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Points : 325
    Points
    325
    Par défaut
    Je viens de voir ta réponse nosferapti, qui me fait me dire que moi aussi je n'ai pas dû bien comprendre quel était ton problème malabarbe.

    Tu veux afficher la dernière ligne de ton fichier ou tu veux afficher ton fichier en entier en commençant par la dernière ligne jusqu'à la première ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Je veux afficher l'intégralité du fichier, mais je voudrais
    que dans le tableau on vois la fin de mon fichier comme
    si j'avais descendu l'ascenceur.

    Voici mon code qui tourne et qui a évolué et qui me fait
    des sauts de ligne dès qu'un point est présent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?PHP
    $ouvre=fopen("i_p2.txt","r");  // ouverture fichier en lecture "r"
    while (!feof ($ouvre))         // tant que pas en fin de fichier
    {
     $tampon = fgets($ouvre, 4096);// mise en tampon des données
     $tampon= str_replace(')', '.)<BR>', $tampon); 
     echo $tampon;		       // affichage du tampon
    }
    fclose($ouvre);		       // fermeture fichier
    ?>

  10. #10
    Membre averti Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Points : 325
    Points
    325
    Par défaut
    D'accord dans ce cas il te faut une ancre comme le précise nosferapti un peu plus haut.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Ok, je vais esseyer

    mais je n'ai pas compris :

    et ensuite tu vas à l'URL
    Code x :
    http://serveur/script.php#baspage

  12. #12
    Membre averti Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Points : 325
    Points
    325
    Par défaut
    Citation Envoyé par malabarbe Voir le message
    Ok, je vais esseyer

    mais je n'ai pas compris :

    et ensuite tu vas à l'URL
    Code x :
    http://serveur/script.php#baspage
    http://serveur/script.php : ça c'est l'url de ta page

    #baspage : ça , ça te redirige vers la div dont l'id est : baspage à l'intérieur de ta page

    Cherche "lien interne" dans Google.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Désolé, mais je ne comprends pas !

    Le http://popo.com/script.php#baspage

    C'est du PHP, HTML, JavaScript ?

    Ou le placer et avec quelle instruction ?

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    J'ai bricolé un truc conne ça, pas d'euueur
    mais ne fait rien ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <SCRIPT language="JavaScript">
     location="stats_g.php#baspage";
    </SCRIPT>

  15. #15
    Membre averti Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Points : 325
    Points
    325
    Par défaut
    le "#baspage" qu'on ajoute à la fin de l'url fait référence à l'id de ta div : <div id="baspage">


    Exemple :

    www.developpez.com : tu arrives en haut de page

    www.developpez.com#shadow1 : tu arrives sur la même page mais un peu plus bas, à l'endroit où se trouve la div "shadow1".

    Pour ton cas, une fois que tu as fini d'afficher ton fichier, il faut te rediriger vers l'url www.exemple.com#endroitoùtuveuxaller

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Oui, j'ai testé le système avec une ancre
    cela fait comme un Goto et fonctionne.

    Le problème, c'est que l'ancre se trouve juste après
    que le fichier est été lu et non a la fin du fichier !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <HTML><HEAD><TITLE> New Document </TITLE>
    </HEAD><BODY><body bgcolor="#7698BE">
    <CENTER>
    <div style="width:330px;height:115px;overflow:auto;">
    	<table border="0" id="table1" align="center" width="300" height="80" bgcolor="#FFD8BE" cellspacing="0" cellpadding="0" scrolling ="Yes" bordercolor="#66CCFF">
    	<tr><td>
     
    	<?PHP
    	//Affiche l'histo des commandes
    	$ouvre=fopen("invent_p2.txt","r");		
    	while (!feof ($ouvre))					
    		{
    		 $tampon = fgets($ouvre, 100);		
    		 $tampon= str_replace(')', ')<BR>', $tampon); 
    			 echo $tampon;				
    			}
    		 fclose($ouvre);			
    	?>
     
    	</td></tr>
    	</table>
    </div> 
    </CENTER>
    </BODY></HTML>
    Résultat visible a : http://www.bonturf.fr/stats/comm.php
    Fichier visible a : http://www.bonturf.fr/stats/invent_p2.txt

    Je crois que le plus simple, serai de forcer le scroll en bas
    je sais faire pour une page mais pas pour une cellule dans un tableau.

  17. #17
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par malabarbe Voir le message
    à quoi correspond cet affichage ? je ne comprends pas trop ce que tu veux faire et pourquoi tu as besoin d'afficher le base de la liste. il est plus naturel de commencer à lire par le haut donc tu pourrais par exemple inverser l'affichage du fichier

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Bonsoir nosferapti,

    Oui, c'est ce que j'ai fait (a l'envers) mais c'est
    une solution provisoire.

    La liste est un historique de commande et et doit
    s'afficher normalement mais se positionner en bas
    (a sa base) pour des raisons de comptabilité.

    Si vous avez le code, je suis preneur !

  19. #19
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par malabarbe Voir le message
    Bonsoir nosferapti,

    Oui, c'est ce que j'ai fait (a l'envers) mais c'est
    une solution provisoire.

    La liste est un historique de commande et et doit
    s'afficher normalement mais se positionner en bas
    (a sa base) pour des raisons de comptabilité.

    Si vous avez le code, je suis preneur !
    soit utiliser une ancre comme je l'ai marqué plus haut mais dans ce cas il faut enlever le "overflow:auto;"
    ou alors tu affiches seulement les 5 dernières commandes par exemple

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Non, le "overflow:auto;" je dois le garder

    Mais ton idée de n'afficher que les 6 dernières
    lignes me plait assez bien.

    Je di 6 lignes car la zone d'affichage contient
    6 lignes.

    Que faut t'il modifier dans le code pour obtenir
    ce résultat ?

Discussions similaires

  1. Fin de fichier .. ???
    Par blackhorus dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 07/04/2005, 13h32
  2. Apposer le caractere de fin de fichier.
    Par moldavi dans le forum Windows
    Réponses: 2
    Dernier message: 17/02/2005, 14h20
  3. "error : fin de fichier inattendue" en C++
    Par mateo.14 dans le forum MFC
    Réponses: 9
    Dernier message: 28/01/2005, 09h30
  4. Réponses: 4
    Dernier message: 07/12/2004, 08h11
  5. Lire de la 2eme ligne à la fin du fichier
    Par iamspacy dans le forum Linux
    Réponses: 3
    Dernier message: 03/05/2004, 13h23

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