Retour à la ligne TEXT - (PHP MySQL)

Résolu
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

  1. C'est bon ^^ voilà le résultat :
    <?php echo nl2br(utf8_encode($data['Description'])); ?>
    C'était le
    nl2br()
    qui me manquais !

    Merci encore ^^
    1
    1. Contributeur
      cool, je ne connaissais pas nl2br :-)

      Dal
      0
  2. Contributeur
    Salut Sinistrus,

    et si tu fais :

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


    Dal
    0
    1. 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
      1. 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
      2. Contributeur
        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