web-dev-qa-db-fra.com

Conserver les sauts de ligne dans TextArea lors de l'écriture dans MySQL

J'utilise une zone de texte pour permettre aux utilisateurs de saisir des commentaires. Toutefois, si les utilisateurs entrent de nouvelles lignes, celles-ci n'apparaissent pas à la sortie. Est-il possible de faire en sorte que les sauts de ligne restent?.

Une idée de comment préserver les sauts de ligne?

101
Hirvesh

Deux solutions pour cela:

  1. Fonction PHP nl2br() :

    par exemple,

    echo nl2br("This\r\nis\n\ra\nstring\r");
    
    // will output
    This<br />
    is<br />
    a<br />
    string<br />
    
  2. Envelopper l'entrée dans <pre></pre> Mots clés.

    Voir: Wiki W3C - HTML/Elements/pre

152
superUntitled

Voici ce que j'utilise

$textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8'));

$inputText est le texte fourni par le formulaire ou textarea. $textToStore est le texte renvoyé par nl2br et htmlentities, à stocker dans votre base de données. ENT_QUOTES convertira les guillemets doubles et simples, vous n'aurez donc aucun problème avec ceux-ci.

35
hiroki

J'ai ma propre réponse: L'utilisation de cette fonction à partir des données de la zone de texte résout le problème:

function mynl2br($text) { 
   return strtr($text, array("\r\n" => '<br />', "\r" => '<br />', "\n" => '<br />')); 
} 

Plus ici: http://php.net/nl2br

3
Hirvesh

j'utilise ces deux étapes de méthode pour conserver le même texte qui se trouve dans textarea à stocker dans mysql et, à un moment précis, je peux aussi simplement afficher du texte brut. ....

étape 1:

$status=$_POST['status'];<br/>
$textToStore = nl2br(htmlentities($status, ENT_QUOTES, 'UTF-8'));

Dans la requête, entrez $textToStore....

étape 2:

écrire le code pour la requête de sélection ... et les valeurs d'écho directes ....

Ça marche

2
Jayendra Bariya

Cela marche:

function getBreakText($t) {
    return strtr($t, array('\\r\\n' => '<br>', '\\r' => '<br>', '\\n' => '<br>'));
}
1
UbiQue
function breakit($t) {
    return nl2br(htmlentities($t, ENT_QUOTES, 'UTF-8'));
}

cela peut vous aider

passer le wal textarea

0
Libin Thomas