Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Обратная функция nl2br


Автор: phpsc 22.1.2011, 23:42
Есть такая?

Автор: phpsc 23.1.2011, 00:50
Цитата
function convert_html_to_bb($description){
$description=nl2br($description); 
  
$input=array("<br />","\n","\r");
$output=array("[br]",'','');
$description=str_ireplace($input,$output,$description);

return $description;
}

function convert_bb_to_html_edit($description){
$input=array("[br]");
$output=array("\n");
$description=str_ireplace($input,$output,$description);
return $description;
}


Автор: skyboy 23.1.2011, 01:53
Цитата(phpsc @  22.1.2011,  22:42 Найти цитируемый пост)
Есть такая? 

Код

$string = str_replace(array("<br>", "<br />"), "\n", $string);

Автор: Kiramoff 14.11.2012, 22:29
Цитата(skyboy @ 23.1.2011,  01:53)
Код

$string = str_replace(array("<br>", "<br />"), "\n", $string);

оно в принципе, правильно, но не всегда. Если задача просто заменить <BR> на \n, то верно. Если же вы текст конвертировали с помощью nl2br и Вам надо конвертировать его обратно, то сработает некорректно.

nl2br  заменяет "\n" на "<br>\n", соответственно в результате обратного конвертирования получим \n\n, т.е. +1 лишнюю строку.

в данном случае коректнее будет либо 
Код

$string = str_replace(array("<br>", "<br />"), "", $string);

либо
Код

$string = str_replace(array("<br>\n", "<br />\n"), "\n", $string);


в зависимости от ситуации

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)