Retour à la ligne TEXT - (PHP MySQL) [Résolu/Fermé]

Signaler
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
-
Messages postés
5460
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
20 janvier 2021
-
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

Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
15
C'est bon ^^ voilà le résultat :
<?php echo nl2br(utf8_encode($data['Description'])); ?>
C'était le
nl2br()
qui me manquais !

Merci encore ^^
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
5460
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
20 janvier 2021
923
cool, je ne connaissais pas nl2br :-)


Dal
Messages postés
5460
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
20 janvier 2021
923
Salut Sinistrus,

et si tu fais :

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


Dal
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
15
Merci Dal,

Oui effectivement cela fonctionne, mais me met le texte en Courier New.
Y a t-il un moyen de remédier à cela ?
Messages postés
1000
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2020
15
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
Messages postés
5460
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
20 janvier 2021
923
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