我正在尝试在消息“原始消息”之后执行换行符,我已尝试过此但它一直向我显示
---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
任何建议?
答案 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>";
结果:
但如果你试试这个:
echo nl2br("<textarea>HI! \nThis is some String, \nit works fine</textarea>");
你会得到这个:
因此在将其保存到数据库之前不应使用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);