8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Malgré de laborieuses recherches, je n'arrive pas à résoudre un problème lié à un navigateur qui semble tout simple au départ.

Voici le contexte :

Je dispose d'un fichier texte (.txt) sur une page en ligne.
Mon but est d'afficher cette page en cliquant sur un lien.

Voici le code que j'ai utilisé :


$url = 'http://monadresse/monfichier.txt';
$page = nl2br(htmlspecialchars(file_get_contents($url)));
echo $page ;


L'echo $page me retourne le fichier bien formaté par htmlspecialchar et nl2br m'insère bien les retour à la ligne.

En revanche au bout d'une certaine taille de l'affichage, je ne lis plus aucun texte bien que l'espace utilisé soit bien pris en compte. C'est à dire que l'ascenseur du navigateur descend encore.

Remarque plus qu'importante : je rencontre ce problème sous firefox 3.0.5 mais pas sous internet explorer 7.

D'où vient le problème ? Une fonction mal utilisée ?
Comme une image est plus claire, voici mon problème en image Smiley cligne :

http://odctools.free.fr/bugs/nl2br-ff.jpg

Merci d'avance pour votre aide.

Bonnes fêtes.
Modifié par Max Pedipoil (21 Dec 2008 - 15:58)
Modérateur
Salut Max Pedipoil et bienvenue sur le forum,

Il me semble que la fonction strip_tags() serait plus adaptée au lieu de htmlspecialchars(). Peut être que cela viendrait de là ? Est ce que ton fichier *.txt est volumineux ?

++
Modifié par Nolem (22 Dec 2008 - 16:09)
Hello,

Peut-on voir le contenu de la source générée de ta page ? (Ou mieux, une page en ligne).
Le contenu affiché est-il celui que tu attendais ou bien manque-t'il la fin ?
Bonsoir tout le monde,

Merci de votre accueil et de vos réponses.
Je peux vous donner le source, néanmoins, j'ai fait quelques tests supplémentaires.

Tymlis, les fichiers texte d'exemples sont ici :

http://odctools.free.fr/bugs/fichier1.txt
http://odctools.free.fr/bugs/fichier2.txt

Nolem, j'ai testé plusieurs fonctions qui toutes fonctionnent avec leur variante à savoir htmlentities (que je garde à moins que vous me conseillez autre chose); htmlspecialchar ainsi que strip_tags (que je ne connaissais pas) mais je retombe sur le même problème.
D'ailleurs je rencontre ce problème qu'avec la fonction nl2br par dessus.

En testant avec un autre fichier texte 'fichier2.txt' je me suis rendu compte que la coupur se situait au même endroit.
J'ai donc copier coller le résultat 'resultat1.txt' et 'resultat2.txt' et je m'aperçois que :

- la coupure c'est à dire la fin de la vision du texte apparait au même numéro de ligne.
- pour les deux fichiers résultats pour un même nombre de lignes, le poids du fichier est différent.

J'espère que vous me comprenez. Smiley cligne

Tout cela pour dire que quelques soit le fichier texte que j'ouvre et ce uniquement avec firefox, l'aperçu du fichier se termine au même endroit soit environ ligne 1817-1818.

Dans les symptômes rencontrés ce qui est bizarre est que le nombre de lignes du fichier complet est bien pris en compte par firefox mais passé la 1818ème ligne aucun texte n'apparaît et aucune possibilité de sélectionner quoique ce soit dans cette zone.

Je n'ai rien diagnostiqué d'autre.

Merci de votre aide.
Hello Max Pedipoil et bienvenue, Smiley cligne

pour des fichiers très volumineux il est conseillé de lire ligne à ligne. Par exemple :
<?php
     $handle = fopen('http://odctools.free.fr/bugs/fichier2.txt', 'r');
     if($handle) {
          $content   = '';
          while(!feof($handle)) {
               $content .= fgets($handle);
          }
          fclose($handle);
          echo $content;
     }
?>


Edit: voir également fgets.
Modifié par Heyoan (22 Dec 2008 - 20:15)
Je plussoie Heyoan, la coupure toujours au même niveau semble être un symptome d'un fichier trop gros pour que file_get_contents puisse le lire correctement.
Merci à tous pour vos conseils.
Dommage pour cette 'limitation' uniquement sur firefox étrange pour une fois.

Je vais donc procéder via une lecture ligne à ligne.

Bonnes fêtes à toute l'équipe.
Modifié par Max Pedipoil (27 Dec 2008 - 17:23)
Max Pedipoil a écrit :

Dommage pour cette 'limitation' uniquement sur firefox étrange pour une fois.
A priori ce n'est pas lié à Firefox. Smiley rolleyes

En tous les cas, si tu considères que ce sujet est [Résolu] merci de l'indiquer en éditant ton premier post et en modifiant le titre. Smiley cligne