我有一个来自我的db(mysql)的文本。此文本通过并保存,以便保留用户键入的换行符,我使用nl2br
函数。
问题是我想让每个段落成为DIV,这样我就可以维持一个用于悬停的CSS类(就像你在这里:http://opendyslexic.org/try-it/)。
我尝试过这种方法:
$text = preg_replace('#<br \/>{1}(.*?)<br \/>{1}#', '<div class = "paragraph_edit">$1</div>', $text);
但它似乎不起作用。
有什么建议吗?
答案 0 :(得分:2)
如果您需要保存行结尾,为什么在存储到数据库之前使用nl2br
?数据已经在那里有行结尾,你的数据库可以很好地存储它们,所以这看起来很奇怪。只需将所有这些\n
存储在那里,然后从那里的\n
获取数据,然后在\n
上展开并重新加入&#34;无论您需要什么&#34; - 可以是implode("<br>",data)
,可以是"<div>" . implode("</div><div>",data) . "</div>"
,也可以是您需要的任何其他内容。
此外,在现代HTML注释中:<br>
的HTML5语法就是这样。 Void元素不会自动关闭,因此看起来nl2br
包会生成错误的HTML(或XHTML,在现代浏览器世界中使用它并没有多大意义)