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?
Deux solutions pour cela:
Fonction PHP nl2br()
:
par exemple,
echo nl2br("This\r\nis\n\ra\nstring\r");
// will output
This<br />
is<br />
a<br />
string<br />
Envelopper l'entrée dans <pre></pre>
Mots clés.
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.
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
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
Cela marche:
function getBreakText($t) {
return strtr($t, array('\\r\\n' => '<br>', '\\r' => '<br>', '\\n' => '<br>'));
}
function breakit($t) {
return nl2br(htmlentities($t, ENT_QUOTES, 'UTF-8'));
}
cela peut vous aider
passer le wal textarea