sql查询将换行符转换为html <br>
Posted
技术标签:
【中文标题】sql查询将换行符转换为html <br>【英文标题】:sql query to convert new line character to a html <br> 【发布时间】:2011-11-02 20:52:24 【问题描述】:我有一个 mysql 数据库的文章,这些文章被输入到没有格式的文本区域中,它们只使用换行符来换行
\n
我需要将所有这些转换成html br标签
<br />
你能帮我写一个查询来做这件事,我可以在 phpmyadmin 中运行它来做这件事吗?
表的名称是
exp_channel_data
作为一个额外的问题......
是否有一个我可以运行的查询将所有内容从 p 和 span 标签的中间剥离
我想摆脱这些东西
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt">
<span face="Times New Roman">
最后就是这个
<p>
<span>
【问题讨论】:
如果您还不知道,请阅读 SQL 注入:en.wikipedia.org/wiki/SQL_injection。你真的,真的,不想在你的数据库中有 SQL。另外,一般来说,我强烈建议在数据库之外进行这种格式化工作。 是的,我实际上并没有在数据库中包含任何 SQL(我认为),这只是我需要运行的一次转换,感谢提示 【参考方案1】:第一个问题:
UPDATE exp_channel_data SET text_column = REPLACE(text_column, '\r\n', '<br />')
如果它没有替换任何内容,请使用 '\n'
而不是 '\r\n'
。
第二个问题:
你不能用 SQL 查询来做到这一点,你必须把这些数据提取到 PHP 脚本中,或者你喜欢的任何其他东西中,并执行正则表达式替换(PHP 示例):
$new_str = preg_replace('#<(p|span)[^>]+>#', '<$1>', $old_string);
【讨论】:
对于第二个问题,使用 mariadb 代替 mysql 并练习 REGEXP_REPLACE() 我在 php trim(preg_replace('/\r\n/', ' ', $text));【参考方案2】:UPDATE yourTable SET text=REPLACE(text,"\n","<br />")
这适用于您的第一个问题。
【讨论】:
这不是有效的 SQL 语法 @Crack,是的,对此感到抱歉。德国现在太热太湿了。 嘿,分享你的太阳。波兰 19°C 多雨 ;)【参考方案3】:由于您使用的是 ExpressionEngine,您只需将每个字段的格式更改为 XHTML。它将在前端显示时添加<br />
标记。打赌保持数据干净,并将格式留给显示它的解析器。
【讨论】:
我实际上是从具有自动 br 格式的 textarea 字段类型切换到 NSM TinyMCE 并希望保留中断,如果我不这样做,文本会一起运行,如果我没有切换字段类型您的解决方案将是一个很好的解决方案【参考方案4】:如果有人碰巧在寻找 PHP 端解决方案,请使用 nl2br
函数...它对我有用。它在运行时将那些讨厌的换行符转换为 HTML <br>
标签。
https://www.w3schools.com/PHP/func_string_nl2br.asp
【讨论】:
以上是关于sql查询将换行符转换为html <br>的主要内容,如果未能解决你的问题,请参考以下文章