从textarea删除<br/>?

时间:2011-09-22 17:28:27

标签: php textarea line-breaks

我正在尝试在消息“原始消息”之后执行换行符,我已尝试过此但它一直向我显示

---Original message---<br />
message

<textarea id="txtMessage" rows="10" cols="50"><?php echo nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message']));?></textarea>

我想要这样的东西:

---Original message---
message

任何建议?

6 个答案:

答案 0 :(得分:4)

这应该做你想要的:

<?php echo str_replace('<br />', " ","---Original message---\n".$array['message']);?>

  

nl2br - 在字符串中的所有换行符之前插入HTML换行符(from php.net

示例:

echo "<textarea>HI! \nThis is some String, \nit works fine</textarea>";

结果:

new line example in textarea

但如果你试试这个:

echo nl2br("<textarea>HI! \nThis is some String, \nit works fine</textarea>");

你会得到这个:

new line with nl2br in texarea

因此在将其保存到数据库之前不应使用nl2br ,否则每次尝试编辑文本时都必须删除<br />!只需在将其作为文本打印出来时使用它。

答案 1 :(得分:1)

echo nl2br(str_replace('<br/>', " ", ... ));

应该是

echo str_replace('<br />', ' ', ... );

答案 2 :(得分:1)

php函数“nl2br”接受换行符,并将它们转换为br标记。如果您不想这样,您应该删除它:)。

嘿,被Ryan殴打。

答案 3 :(得分:0)

您正在尝试替换<br/>,但原始文字有<br />(请注意空格)。

答案 4 :(得分:0)

您正在删除HTML中断,然后将其添加回来!看看你的代码:

nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message']))

首先,str_replace用空格替换'<br/>'。然后,nl2br为找到的每个换行符<br>添加\n

删除nl2br来电并完成。

答案 5 :(得分:0)

如果你想在所有文本上做nl2br,除了textarea里面的内容你可以这样做:

function clean_textarea_of_br($data) {
     return str_replace(array("<br>", "<br/>", "<br />"), "", $data[0]);
}

$message = preg_replace_callback('#<textarea[^>]*>(.*?)</textarea>#is',clean_textarea_of_br,$message);