OVH Cloud OVH Cloud

ptit pb de fpassthru

13 réponses
Avatar
Anthony Desvernois
salut,
j'ai un fichier texte que je désire afficher sur ma page,
j'utilise donc la fonction fpassthru : mais elle affiche tout le texte sans
sauter de ligne ;
je ne vois pas comment résoudre cela, si vous pouviez m'éclairer...
merci d'avance :)
++

--
-------------------------------
Anthony / Webhellfire
http://aplan.france.free.fr/index.php?fr=4

10 réponses

1 2
Avatar
Thibaut Allender

j'ai un fichier texte que je désire afficher sur ma page,
j'utilise donc la fonction fpassthru : mais elle affiche tout le texte sans
sauter de ligne ;


normal, un retour en (x)html c'est <br( /)> et non n ou rn

je ne vois pas comment résoudre cela, si vous pouviez m'éclairer...
merci d'avance :)


en utilisant un code html approprié :

<pre>
<?php fpasstrh()... ?>
</pre>

ou bien ne pas utiliser fpasstrhu() mais fread() afin de charger le
texte dans une variable, et l'afficher avec un petit nl2vr() au passage

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version*

Avatar
Guillaume Bouchard
Anthony Desvernois wrote:
j'ai un fichier texte que je désire afficher sur ma page,
j'utilise donc la fonction fpassthru : mais elle affiche tout le texte sans
sauter de ligne ;


Normal, c'est du html et en html les sauts de lignes ne sont pas
considerer comme des sauts de lignes.

je ne vois pas comment résoudre cela, si vous pouviez m'éclairer...


http://www.php.net/nl2br

--
Guillaume.

Avatar
Aphrael
Anthony Desvernois wrote:
salut,
j'ai un fichier texte que je désire afficher sur ma page,
j'utilise donc la fonction fpassthru : mais elle affiche tout le texte sans
sauter de ligne ;
je ne vois pas comment résoudre cela, si vous pouviez m'éclairer...
merci d'avance :)
++


nl2br(); ?

Aphrael
--
"La demande mondiale d'ordinateurs n'excédera pas cinq machines."
(Thomas Watson, Fondateur d'IBM, 1945)

Avatar
Anthony Desvernois
le problème étant que la longueur du fichier varie et qu'elle est inconnu ;
d'ou l'impossibilité d'utiliser fread ou fgets....
la balise pre fonctionne pas sinon :(
n2lvr ne fonctionne qu'avec des variables :(
merci quand meme

--
-------------------------------
Anthony / Webhellfire
http://aplan.france.free.fr/index.php?fr=4
"Thibaut Allender" a
écrit dans le message de news:

j'ai un fichier texte que je désire afficher sur ma page,
j'utilise donc la fonction fpassthru : mais elle affiche tout le texte
sans


sauter de ligne ;


normal, un retour en (x)html c'est <br( /)> et non n ou rn

je ne vois pas comment résoudre cela, si vous pouviez m'éclairer...
merci d'avance :)


en utilisant un code html approprié :

<pre>
<?php fpasstrh()... ?>
</pre>

ou bien ne pas utiliser fpasstrhu() mais fread() afin de charger le
texte dans une variable, et l'afficher avec un petit nl2vr() au passage

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version*



Avatar
Johann Dantant
"Anthony Desvernois" a écrit dans le message de
news:40efbd07$0$12186$
le problème étant que la longueur du fichier varie et qu'elle est inconnu
;

d'ou l'impossibilité d'utiliser fread ou fgets....


Avez-vous bien lu la doc de fgets ? N'y a-t-il pas un bel exemple avec une
boucle while ???

la balise pre fonctionne pas sinon :(


Ben voyons. C'est quoi comme navigateur ? wget + winword ???

n2lvr ne fonctionne qu'avec des variables :(


Ben voyons. D'abord c'est nl2br(), ensuite c'est une fonction qui attend un
paramètre de "type" string. Quelle est au juste ton interprétation de cette
information ?

merci quand meme


En combinant les 2 exemples (fgets et nl2br), un enfant de 6 ans aurait
pourtant écrit (copié collé direct de la doc, sans plus de réflexion) :

<?php
$fd = fopen ("/tmp/inputfile.txt", "r");
while (!feof ($fd)) {
$buffer = fgets($fd, 4096);
echo nl2br($buffer);
}
fclose ($fd);
?>

Bon C.P. pour l'an prochain ;-)

-------------------------------
Anthony / Webhellfire


Au fait, tu n'as jamais lu non plus les courtes règles d'utilisation
d'usenet, notamment au chapitre "répondre" ?

J.D.

Avatar
Cafeine911
"Thibaut Allender" a
écrit dans le message de news:

j'ai un fichier texte que je désire afficher sur ma page,
j'utilise donc la fonction fpassthru : mais elle affiche tout le texte
sans


sauter de ligne ;


normal, un retour en (x)html c'est <br( /)> et non n ou rn

je ne vois pas comment résoudre cela, si vous pouviez m'éclairer...
merci d'avance :)


en utilisant un code html approprié :

<pre>
<?php fpasstrh()... ?>
</pre>

ou bien ne pas utiliser fpasstrhu() mais fread() afin de charger le
texte dans une variable, et l'afficher avec un petit nl2vr() au passage

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version


d'accord pour le html approprié ou bien :
function lit_fichier($fichier)
{
$lecture = fopen($fichier,"r"); //ouvre le
fichier.
$chaine = fread($lecture,filesize($fichier)); //lit le contenu
du fichier.
fclose($lecture); //referme le
fichier.
return $chaine; //retourne le
contenu du fichier.
}

function filtre_contenu($chaine)
{
$chaine=str_replace(".",".<br>",$chaine); //la fonction
recherche les caractères de
$chaine=str_replace("?","?<br>",$chaine); //fin de phrase
et les remplace pour un
$chaine=str_replace(":",":<br>",$chaine); //passage à la
ligne(balise HTML <br>).
$chaine=str_replace("!",".<br>",$chaine);
return $chaine;
}
si tu veux faire de retour après chaque phrases.
ensuite dans le body ou tu veux :
<?php
$contenu1= lit_fichier("fichier.txt");
$contenu1= filtre_contenu($news1);
echo "$contenu1";
?>
mais je prefère utilisr des <div> avec des feuilles de style plutot que
filtre_contenu, qui te permettent de délimiter une zone, d'afficher
correctement à l'intérieur et de définir des marges intérieuresdonc des
retours
à la ligne auto suivant la largeur définie.


Avatar
Anthony Desvernois
"Johann Dantant" a écrit dans
le message de news:ccoseb$4du$
"Anthony Desvernois" a écrit dans le message de
news:40efbd07$0$12186$
le problème étant que la longueur du fichier varie et qu'elle est
inconnu


;
d'ou l'impossibilité d'utiliser fread ou fgets....


Avez-vous bien lu la doc de fgets ? N'y a-t-il pas un bel exemple avec une
boucle while ???

la balise pre fonctionne pas sinon :(


Ben voyons. C'est quoi comme navigateur ? wget + winword ???


la balise ne donne rien vu que dans le *.txt il n'y pas de n ni de r


n2lvr ne fonctionne qu'avec des variables :(


Ben voyons. D'abord c'est nl2br(), ensuite c'est une fonction qui attend
un


nl2br oui dsl jlé tapé trop vite :)

paramètre de "type" string. Quelle est au juste ton interprétation de
cette

information ?


une variable de type string oui si tu préfere.....


merci quand meme


En combinant les 2 exemples (fgets et nl2br), un enfant de 6 ans aurait
pourtant écrit (copié collé direct de la doc, sans plus de réflexion) :

<?php
$fd = fopen ("/tmp/inputfile.txt", "r");
while (!feof ($fd)) {
$buffer = fgets($fd, 4096);
echo nl2br($buffer);
}
fclose ($fd);
?>


super; la charge serveur........



Bon C.P. pour l'an prochain ;-)


lol :)

au passage merci de votre aide ( a tous) j'ai finalement pus résoudre mon
problème (réglé a la source au lieu de le régler a l'affichage)
++++


Au fait, tu n'as jamais lu non plus les courtes règles d'utilisation
d'usenet, notamment au chapitre "répondre" ?


si si sauf que mon client de news ne met pas les réponse directement en bas
et que j'ai eu la flemme de faire un couper/coller :)

--
-------------------------------
Anthony / Webhellfire
http://aplan.france.free.fr/index.php?fr=4


Avatar
Thibaut Allender

la balise ne donne rien vu que dans le *.txt il n'y pas de n ni de r


ben voyons...
je signale au passage que r ou n sont des caracteres invisibles...

super; la charge serveur........


tu as un benchmark a l'appui ?

au passage merci de votre aide ( a tous) j'ai finalement pus résoudre mon
problème (réglé a la source au lieu de le régler a l'affichage)


avec des <br> dans la source ?

si si sauf que mon client de news ne met pas les réponse directement en bas
et que j'ai eu la flemme de faire un couper/coller :)


Utilise OE Quote-fix, ou mieux, un meilleur newsreader

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version*

Avatar
Anthony Desvernois
"Thibaut Allender" a
écrit dans le message de news:

la balise ne donne rien vu que dans le *.txt il n'y pas de n ni de r


ben voyons...
je signale au passage que r ou n sont des caracteres invisibles...


oui désolé :(


super; la charge serveur........


tu as un benchmark a l'appui ?


non logiquement obliger a faire une/plusieurs bloque a ton script alors que
tu peut faire la meme sans boucle utilise
forcement moin de charge serveur

au passage merci de votre aide ( a tous) j'ai finalement pus résoudre
mon


problème (réglé a la source au lieu de le régler a l'affichage)


avec des <br> dans la source ?


au départ oui,
mais un de vous m'a trouvé une solution beaucoup mieux ;
$taille = (filesize($fichier) + "1") ;
$open = fopen($fichier,"r");
$read = fread($open,$taille);
$afficher = nl2br($read);
print("$afficher");

et le tour est joué :)


si si sauf que mon client de news ne met pas les réponse directement en
bas


et que j'ai eu la flemme de faire un couper/coller :)


Utilise OE Quote-fix, ou mieux, un meilleur newsreader


merci du conseil ; une preference en ce domaine ?




Bonne soirée en tou cas et merci de m'avoir apporté votre aide :)
j'espère pouvoir faire de meme un jour ;)
+++


--
-------------------------------
Anthony / Webhellfire
http://aplan.france.free.fr/index.php?fr=4


Avatar
Thibaut Allender

non logiquement obliger a faire une/plusieurs bloque a ton script alors que
tu peut faire la meme sans boucle utilise
forcement moin de charge serveur


pas forcemment
fpassthru utilise aussi une boucle en interne pour faire la meme chose
la difference entre les 2 methodes est surement insignifiante
seul le nl2br peut consommer un peu plus de cpu, il faut voir s'il est
plus judicieux de composer une chaine sans nl2br dans la boucle, ou s'il
vaut mieux faire le nl2br en meme temps

la, un petit bench serait utile

au départ oui,
mais un de vous m'a trouvé une solution beaucoup mieux ;
$taille = (filesize($fichier) + "1") ;
$open = fopen($fichier,"r");
$read = fread($open,$taille);
$afficher = nl2br($read);
print("$afficher");

et le tour est joué :)


attention que cette methode ne fonctionnera pas avec un fichier distant,
(il faut alors utiliser la methode avec la boucle)

Utilise OE Quote-fix, ou mieux, un meilleur newsreader


merci du conseil ; une preference en ce domaine ?


thunderbird me semble etre une bonne alternative a OE
maintenant, il existe tout un tas de clients... les gouts et les couleurs...

Bonne soirée en tou cas et merci de m'avoir apporté votre aide :)
j'espère pouvoir faire de meme un jour ;)


de rien,
a+

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version*


1 2