将数据库中的 <br /> 替换为 PHP 上的 DIV


Replace <br /> from DB with DIVs on PHP

我有一个来自我的数据库(mysql)的文本。此文本是通过保存的,为了保留用户键入的换行符,我使用 nl2br 函数。

问题是我想使每个段落都成为 DIV,这样我就可以维护一个用于悬停的 CSS 类(就像你在这里一样:http://opendyslexic.org/try-it/)。

我试过这种方法:

$text = preg_replace('#<br '/>{1}(.*?)<br '/>{1}#', '<div class = "paragraph_edit">$1</div>', $text);

但它似乎不起作用。

有什么建议吗?

如果您需要保存行尾,为什么要在存储数据库之前使用 nl2br?数据已经有行尾,你的数据库可以很好地存储它们,所以这似乎是一件非常奇怪的事情。只需将所有'n存储在那里,然后从数据库中获取这些'n,然后在'n上爆炸并重新加入"你需要的任何东西" - 可能是implode("<br>",data),可能是"<div>" . implode("</div><div>",data) . "</div>",或者你需要的任何其他东西。

另外,在现代HTML注释上:<br>的HTML5语法就是这样。void 元素不是自闭合的,所以看起来nl2br包正在生成糟糕的 HTML(或 XHTML,在现代浏览器世界中使用没有多大意义)