【发布时间】:2016-09-27 15:24:43
【问题描述】:
我有一个生成 BBCode 的 html 表单,它是一些在线留言板中使用的 html 的修改形式。与 BBCode 最大的不同在于它在标签上使用了括号,而不是传统的小于/大于符号(例如 [br])。
我的表单元素之一是一个多行文本框,可以发送如下文本:
红色
橙色
黑色
在每一行的末尾有一个 \r\n 没有传递给我的输出,所以我得到:
红橙黑
我正在使用以下代码将 \r\n 替换为 [br]
$_description = stripslashes($_POST['description']);
$movie_description = str_replace("\r\n","[br]",$_description);
现在的输出是:
黑色[br][br]橙色[br][br]红色
哪一个 [br] 太多了。
如果我将 str_replace 函数切换为:
$movie_description = str_replace("\n","[br]",$_description);
我得到黑色 [br]橙色 [br]红色更好,但现在第 2 行和第 3 行前面有一个空格。如果我替换 \r 而不是 \n,结果是相似的。
如何获得如下所示的输出:
黑色[br]橙色[br]红色
【问题讨论】:
-
我仍然对观察结果持怀疑态度,但我已经编辑了标题以反映这一主张。
标签: php string function replace