Php br标签的str_替换无效

Php br标签的str_替换无效,php,str-replace,Php,Str Replace,我在用户提交的表单上有一个textarea字段,它被保存到MySQL数据库中。检索该值时,我运行nl2br将换行符转换为br标记。然后我使用str_replace将双br替换为p标记。问题是什么都没有被取代。我已经看了一遍又一遍,只是不知道什么是错的 以下是HTML输出: Windows XP Home / Professional <br />(32 and 64 bit) <br /> <br />Test Operating System 2 <b

我在用户提交的表单上有一个textarea字段,它被保存到MySQL数据库中。检索该值时,我运行nl2br将换行符转换为br标记。然后我使用str_replace将双br替换为p标记。问题是什么都没有被取代。我已经看了一遍又一遍,只是不知道什么是错的

以下是HTML输出:

Windows XP Home / Professional
<br />(32 and 64 bit)
<br />
<br />Test Operating System 2
<br />(32 and 64 bit)
<br />
<br />Test Operating System 3
<br />(64 bit)
windowsxphome/Professional

(32位和64位)

测试操作系统2
(32位和64位)

测试操作系统3
(64位)
以下是我的PHP:

$FORMATTED = str_replace("<br /><br />", "</p><p>", $SUPPORTED_PLATFORMS);
$FORMATTED=str\u replace(“

”,“”,$SUPPORTED\u PLATFORMS);
$FORMATTED的输出看起来与上面的HTML输出完全相同。我基本上想用p标记替换所有背靠背br标记,并保留所有单个br标记的原样


谢谢

问题是,您试图替换


字符串,但该字符串不在源代码中。“html”输出中有

\n

\r\n

或类似内容。不要相信在浏览器的渲染视图中看到的内容。它会骗你的。始终首先检查
查看源代码
,和/或捕获文本并通过十六进制编辑器运行,以准确查看字符串中的内容。应使用正则表达式替换连续的
br
标记<代码>预替换(“/\s*”、“

”、$SUPPORTED\u PLATFORMS)
\s
替换任何空格字符谢谢@MarcB。我发布的HTML来自视图源,这正是我感到困惑的地方。那么,在我的str\u replace中的br之间添加\r\n是否同样简单?我现在可以试试……不知道。您必须准确查看

标记之间的内容。e、 将原始的“这不起作用”文本保存在某个地方,并使用十六进制编辑器查看。谢谢Jakub!这就是诀窍-将替换更改为

\r
,它工作得非常好!