将BR标记转换为文本区域中的新行


converting BR tags into new lines in a textarea

这是我做的一个函数,它应该将每个Br换行转换为'n:

function br2nl($st){
    return preg_replace('/<br('s+)?'/?>/i', "'n", $st);
}

但是,输出是这样的:

foo
bar
nuts

我想让它输出如下内容:

foo <br>
bar <br>
nuts

可能你的HTML是

foo<br>
bar<br>
nuts<br>

所以你已经有了"'n",把br替换为"'n"你就得到了两个"'n",就像

foo 'n'n bar 'n'n nuts

它看起来像

foo
bar
nuts

对于接收输出,您建议-您需要从输入HTML中删除"'n",然后将br替换为"'n"

代码应该是

function br2nl($st){
  $st_no_lb = preg_replace( "/'r|'n/", "", $st );
  return preg_replace('/<br('s+)?'/?>/i', "'n", $st_no_lb);
}