Как заменить \ r \ n в текстовой области - PullRequest
3 голосов
/ 30 мая 2011

код PHP

<?php
$content = "check1\r\ncheck2\r\ncheck3\r\nend..."   
$order   = array("\r\n");
$replace = "\n";
$content= str_replace( $order, $replace, $content);
$smarty->assign('content', $content);
?>

Просмотр страницы (шаблон smarty)

<textarea>{$content}<textarea>

Выход:

check1\r\ncheck2\r\ncheck3\r\nend...

Я ожидаю вывод, как показано ниже

check1
check2
check3
end...

внутри текстовой области. Я заменил \r\n на \n, но даже тогда я не могу получить желаемый результат. Что не так в моем коде? Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 30 мая 2011

Похоже, у вас проблема, подобная этой .

Если я правильно читаю, попробуйте:

<textarea>{$content|stripcslashes}<textarea>
3 голосов
/ 30 мая 2011

Я не Smarty Гуру, но вы можете захотеть это вместо этого в своем шаблоне:

<textarea>{$content|stripslashes}<textarea>
1 голос
/ 30 мая 2011

Заменяет все \r\n на \n.

$content = str_replace("\r\n", "\n", $content);

Я успешно использовал это пару дней назад, и они правильно отображаются в текстовом поле.

0 голосов
/ 01 мая 2017

У меня была такая же проблема с \r\n, но мне пришлось добавить дополнительные обратные слеши к аргументу поиска (т. Е. \r\n становится \\r\\n), чтобы он работал:

$content = str_replace("\\r\\n","\r\n",$content);

...