Retour à la ligne TEXT - (PHP MySQL)

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite de l'aide svp !
Voilà ce qui me permet d'envoyer mon texte à ma table :
if(isset($_POST['Description']))  $Description =  mysql_real_escape_string(htmlspecialchars($_POST["Description"]));  else $Description="";
Seulement, le texte ne va pas à la ligne.
C'est à dire
Bonjour,
Vous allez bien ?
me renvois
Bonjour,Vous allez bien ?
Le format de mon champ dans la table est de type TEXT.

Et voilà comment j'affiche mon texte :
<?php echo utf8_encode($data['Description']); ?>

Merci de votre aide !

3 réponses

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
C'est bon ^^ voilà le résultat :
<?php echo nl2br(utf8_encode($data['Description'])); ?>
C'était le
nl2br()
qui me manquais !

Merci encore ^^
1
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 106
 
cool, je ne connaissais pas nl2br :-)


Dal
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 106
 
Salut Sinistrus,

et si tu fais :

<?php echo "<pre>" . utf8_encode($data['Description']) . "</pre>"; ?>


Dal
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci Dal,

Oui effectivement cela fonctionne, mais me met le texte en Courier New.
Y a t-il un moyen de remédier à cela ?
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Ah non, si la phrase est longue il la coupe pas, il me fait une seule ligne qui dépasse la page même et donc me gâche le design... :s
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 106
 
la balise html
<pre>
affiche le texte en préservant le format : https://www.w3schools.com/tags/tag_pre.asp. C'est pourquoi c'est normalement rendu en police à espacement fixe de type Courier.

C'était juste un moyen de vérifier que ta base de données contient bien les retours à la ligne.

En dehors de l'usage de
<pre>
html ignore les retours à la ligne, et c'est normal : pour faire des retours à la ligne tu dois, en html, utiliser des balises
<br>
ou
<p>
pour créer un nouveau paragraphe. C'est du html de base.

Pour afficher des retours à la ligne, tu pourrais passer ta variable sur une regex avec preg_replace qui remplace les retours à la ligne par des
<br />
, par exemple.


Dal
0