Page 1 sur 1

Probleme affichage txt en php

Posté : 23 juin 2012, 12:08
par JeanMi66
Bonjour,
J'ai le problème suivant :
- Je traite un formulaire en php sans BDD (en stockant dans un fichier txt)
- J'affiche le resultat en php sur une page HTML :
<?php
$consultez="messages.txt";
=readfile($consultez);
?>


Tout fonctionne très bien sauf que le message saisi dans le champ TEXTAREA du formulaire est retourné sur une seule ligne : je ne parvient pas à forcer un affichage au format de ma page HTML

Qu'est-ce que j'ai oublié ?

Re: Probleme affichage txt en php

Posté : 23 juin 2012, 12:10
par xTG
Si tu regardes le code source généré tu verras que les retours à la ligne sont pris en compte.
Mais en HTML il n'y a pas de caractère de retour, c'est une balise : <br />
Il existe en PHP une fonction pour transformer les caractères de retour en balise HTML : nl2br() :)

Re: Probleme affichage txt en php

Posté : 23 juin 2012, 12:13
par JeanMi66
Merci mais ou dois-je l'inserrer ?

Voici le code de mise en forme de mon message :

$opinion="Le <b>".$date."</b> note : <b>".$note."</b><br/>
Message posté par <b>".$pseudo."</b> (ville de <b>".$ville."</b> departement <b>".$dpt."</b>) <br />
<i>\n".$message."</i><br />\n<br />";

En fait c'est l'affichage de $message qui pose problème (tout sur une seule ligne)

Re: Probleme affichage txt en php

Posté : 23 juin 2012, 12:15
par xTG
$monTexte = 'un texte avec
des retours à la ligne';
$monTexte = nl2br($monTexte);
echo $monTexte; // s'affichera avec les balises <br />

Re: Probleme affichage txt en php

Posté : 23 juin 2012, 12:17
par JeanMi66
Pour completer mon problème simplement :

Les visiteurs ne saisissent pas de retour clavier lors de la saisie dans le champ TEXTAREA, du coup, tout s'affiche sur une seule ligne quand je viens recuperer le fichier TXT

Re: Probleme affichage txt en php

Posté : 23 juin 2012, 12:20
par xTG
S'ils ne tapent jamais sur la touche entrée je vois mal comment tu peux inventer les retours à la ligne dans ce cas. :roll:

Re: Probleme affichage txt en php

Posté : 23 juin 2012, 12:30
par JeanMi66
C'est exactement cela !!!
Le probleme c'est que lors de la saisie dans le champ du formulaire, les retours à la ligne se font automatiquement à l'extrémité droite du cadre du TEXTAREA .
On ne peut effectivement pas inventer des retours non saisis, je suis bien d'accord.

Par contre, je ne m'explique pas pourquoi l'affichage du resultat dans ma page HTML ne se fait que sur une seule ligne :
Le resultat est envoyé à l'intérieur d'une <table> dont la largeur est fixée à 300 par CSS.

Pourquoi le texte ne se module pas à l'intérieur du format de cette table ??

Merci de ton aide ??

Re: Probleme affichage txt en php

Posté : 23 juin 2012, 12:59
par sirakawa
Le problème c'est que lors de la saisie dans le champ du formulaire, les retours VISUELS à la ligne se font automatiquement à l'extrémité droite du cadre du TEXTAREA .
On ne peut effectivement pas inventer des retours non saisis, je suis bien d'accord, mais on peut écrire une petite fonction qui ajoute un saut de ligne tous les +/-n caractères (ex pour 60):
début vaut 0;
tant que début est inférieur à la longueur du texte
{
chercher le premier espace en partant de début avant le 60 ème,
remplacer cet espace par un espace et un saut de ligne;
incrémenter début de (60 + longueur de ce qu'on ajoute)
mettre à jour la longueur du texte
et recommencer
}
:
Merci de ton aide ??