用于将新行字符转换为html的SQL查询

时间:2011-08-24 14:19:07

标签: mysql html expressionengine

我有一个文章的mysql数据库,这些文章被输入到没有格式化的textarea中,他们只使用换行符来换行

\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>

4 个答案:

答案 0 :(得分:20)

第一个问题:

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);

答案 1 :(得分:6)

UPDATE yourTable SET text=REPLACE(text,"\n","<br />")

这适用于您的第一个问题。

答案 2 :(得分:1)

由于您正在使用ExpressionEngine,因此您只需将每个字段的格式更改为XHTML即可。它将在前端显示时添加<br />标记。下注以保持数据清洁并将格式保留给显示它的解析器。

答案 3 :(得分:0)

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

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