Retour à la ligne TEXT - (PHP MySQL)

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié par Sinistrus le 22/10/2013 à 13:48
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 22 oct. 2013 à 15:01
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
Modifié par Sinistrus le 22/10/2013 à 14:59
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 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
22 oct. 2013 à 15:01
cool, je ne connaissais pas nl2br :-)


Dal
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
22 oct. 2013 à 14:06
Salut Sinistrus,

et si tu fais :

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


Dal
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
22 oct. 2013 à 14:40
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
22 oct. 2013 à 14:46
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 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 22/10/2013 à 15:00
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