可能基于以下问题:Best way to strip html tags from a string in sql server?从MySQL数据库列中的数据中剥离HTML
想到我是一个noob。我有一个数据在其中的领域。我需要从这个列中去掉html,并且我知道有一个PHP函数可以实现这个功能。我该如何在我的SQL数据库中执行此操作?
我为查询输入了什么内容?从表格中选择我的专栏(我称之为专业领域)......然后呢?
可能基于以下问题:Best way to strip html tags from a string in sql server?从MySQL数据库列中的数据中剥离HTML
想到我是一个noob。我有一个数据在其中的领域。我需要从这个列中去掉html,并且我知道有一个PHP函数可以实现这个功能。我该如何在我的SQL数据库中执行此操作?
我为查询输入了什么内容?从表格中选择我的专栏(我称之为专业领域)......然后呢?
使用strip_tag()
功能
// assuming that you're using MySQL
$result = mysqli_query("SELECT column FROM table");
while ($row = mysqli_fetch_array($result)) {
echo strip_tags($row['column']) . '<br />';
}
,或者使用preg_replace()
功能和这个简单的正则表达式<[^>]*>
echo preg_replace('/<[^>]*>/', '', $row['column']);
Recomended方法:strip_tags()
功能在这种情况下。它有两个论点;第一个是文本本身,第二个包含allowed tags
;因此,举例来说,如果你想保持<a>
和清洁一切您只需使用它像这样:
strip_tags($text, '<a>');
我不是MS SQL用户,但正如我所看到的您发布的链接。它在那里解释。您只需通过粘贴该代码即可创建一个功能。
//Function From the Link Given in Question
CREATE FUNCTION [dbo].[udf_StripHTML]
(@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('<',@HTMLText)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
WHILE @Start > 0
AND @End > 0
AND @Length > 0
BEGIN
SET @HTMLText = STUFF(@HTMLText,@Start,@Length,'')
SET @Start = CHARINDEX('<',@HTMLText)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
END
RETURN LTRIM(RTRIM(@HTMLText))
END
GO
我想你可以使用上面的函数使用这样的查询。
select * from table where dbo.udf_StripHTML(Content1) like ‘%Hello%’
即时通讯不知道上述查询,但我认为它会是这样的。然而,上面的函数定义,只是尝试在查询中使用,可能会解决您的问题。
谢谢,但粘贴在哪里? – ObiWanKobi 2014-08-29 12:36:52
@ObiWanKobi在你的代码中的某处..它在查询之上,因为如果你去使用你尚未定义的函数,你将会有一段糟糕的时间。 – 2014-08-29 12:38:45
您可以选择从某种类型的ID一起最好的表中的列。然后清理它们,然后更新它们,这是id派上用场的地方。所以你会知道你正在更新正确的行。 – Rimble 2014-08-29 12:17:22
将事物放入数据库之前,去除HTML会更容易吗? – 2014-08-29 12:18:42
我假设你没有使用SQL-Server,因为那个问题解释了如何在那里完成。你使用的是什么DBMS? – Barmar 2014-08-29 12:20:16