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。它将在前端显示时添加&lt;br /&gt; 标记。打赌保持数据干净,并将格式留给显示它的解析器。

【讨论】:

我实际上是从具有自动 br 格式的 textarea 字段类型切换到 NSM TinyMCE 并希望保留中断,如果我不这样做,文本会一起运行,如果我没有切换字段类型您的解决方案将是一个很好的解决方案【参考方案4】:

如果有人碰巧在寻找 PHP 端解决方案,请使用 nl2br 函数...它对我有用。它在运行时将那些讨厌的换行符转换为 HTML &lt;br&gt; 标签。

https://www.w3schools.com/PHP/func_string_nl2br.asp

【讨论】:

以上是关于sql查询将换行符转换为html <br>的主要内容,如果未能解决你的问题,请参考以下文章

如何在react / javascript中处理换行符<br>并将其转换为html [重复]

解决table中换行符<br;被字符化得问题

将 <br> 解析为纯文本新段落

如何将空格和换行符从 TEXTAREA 转换为 html

正则替换换行符和把 br 替换成换行符

SQL中如何存储回车符和换行符,在text或者是ntext的数据类型中