8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je suis débutant en php. J'ai découvert la fonction ".nl2br()" qui sert à créer des retours de chariots dans un Textarea. J'ai un formulaire avec un textarea et j'aimerais attribuer la fonction ".nl2br" à celui-ci. Le problème c'est que je ne sais pas où et comment l'insérer. Voici le bout de code concerné:

<textarea name="zone_texte" cols="22" rows="4" class="textarea_contact" style="word-wrap:normal overflow:auto;">
<?php
if ((isset($_POST['envoi'])) AND (isset($_SESSION['zone_texte'])))  {
echo(stripslashes($_SESSION['zone_texte']));
}
?>
</textarea>


La valeur du textarea est "zone_texte".

Merci à l'avance.
SirMalo a écrit :
Bonjour,

Je suis débutant en php. J'ai découvert la fonction ".nl2br()" qui sert à créer des retours de chariots dans un Textarea.

Perdu Smiley lol , dans les textarea on ne met pas un br pour un retour chariot, mais un vrai "caractère" retour chariot, genre \n Smiley smile
Pourquoi faudrait-il mettre un \n dans un textarea ?
Il existe dès le moment où la touche de retour à la ligne a été enfoncée.

nl2br() est une fonction à utiliser UNIQUEMENT à l'affichage du texte dans le corps de la page.
Attention! la fonction nl2br génère la balise <br /> (depuis PHP 4.0.5). À éviter donc si le code généré est du HTML, auquel cas on codera ainsi:

<?php
$chaine = "Ma chaîne avec un\nretour à la ligne.";
preg_replace ("/(\r|\n|\r\n)/", "<br>", $chaine);
?>
Bison a écrit :
Pourquoi faudrait-il mettre un \n dans un textarea ?

Oui justement, enfin j'veux dire, lors de l'affichage d'un texte dans un textarea, il faut s'assurer que les retour chariots sont des retour chariots normaux (donc \n), et non <br /> Smiley smile
Victor BRITO a écrit :
Attention! la fonction nl2br génère la balise <br /> (depuis PHP 4.0.5). À éviter donc si le code généré est du HTML, auquel cas on codera ainsi:

<?php
$chaine = "Ma chaîne avec un\nretour à la ligne.";
preg_replace ("/(\r|\n|\r\n)/", "<br>", $chaine);
?>

Et pourquoi donc ?
nl2br() ne remplace absolument rien. Il n'y a donc aucune raison valable de pratiquer ce genre de bricolage, qui plus est avec une regex. A la limite un str_replace('<br />','<br>',$chaine); Smiley langue