2008-11-14 13 views

Répondre

34

Jetez un oeil à la fonction nl2br(). Cela devrait faire exactement ce que vous voulez.

9

La cette fonction nl2br() existe à faire exactement:

Cependant, cette fonction permet d'ajouter des balises br mais ne supprime pas réellement les nouvelles lignes - c'est généralement pas un problème, mais si vous voulez les dépouiller complètement et attraper retours chariot aussi bien, vous devez utiliser un str_replace ou preg_replace

Je pense que str_replace serait légèrement plus rapide, mais je n'ai pas référencé;

$val = str_replace(array("\n","\r","\r\n"), '<br />', $val); 

ou

$val = preg_replace("#\n|\r|\r\n#", '<br />', $val); 
5

Si vous allez utiliser str_replace ou preg_replace, vous devriez probablement placer le "\r\n" au début du tableau, sinon une séquence \r\n sera traduite en deux <br/> balises (puisque le \r sera apparié, puis le \n sera apparié).

par exemple:

$val = str_replace(array("\r\n", "\n","\r"), '<br />', $val); 

ou

$val = preg_replace("#\r\n|\n|\r#", '<br />', $val); 
0

Pour ceux qui veulent une réponse qui ne repose pas sur nl2br():

$newList = ereg_replace("\n",'|', $_POST['theTextareaContents']); 

ou (dans ce cas):

$newList = ereg_replace("\n",'<br/>', $_POST['theTextareaContents']); 

PHP côté: de chaîne Textarea à chaîne PHP

$newList = ereg_replace("\n",'|', $_POST['theTextareaContents']); 

PHP côté: string PHP Retour à chaîne TextArea:

$list = str_replace('|', '&#13;&#10;', $r['db_field_name']); 
Questions connexes