Преобразование тегов BR в новые строки в текстовой области
Это функция, которую я сделал, которая должна конвертировать каждый Br
разрыв строки в \n
:
function br2nl($st){
return preg_replace('/<br(\s+)?\/?>/i', "\n", $st);
}
Тем не менее, вывод выглядит так:
foo
bar
nuts
Я хочу, чтобы он вывел что-то вроде:
foo <br>
bar <br>
nuts
1 ответ
Решение
Возможно, ваш HTML
foo<br>
bar<br>
nuts<br>
Таким образом, у вас уже есть "\n", и, заменяя br на "\n", вы получите двойной символ \ n
foo \n\n bar \n\n nuts
это выглядит как
foo
bar
nuts
Для получения вывода вы предлагаете - вам нужно удалить "\n" из входного HTML, а затем заменить br на "\n"
Код будет
function br2nl($st){
$st_no_lb = preg_replace( "/\r|\n/", "", $st );
return preg_replace('/<br(\s+)?\/?>/i', "\n", $st_no_lb);
}