【问题标题】:Striping HTML from data in MySQL database column从 MySQL 数据库列中的数据中剥离 HTML
【发布时间】:2014-08-29 12:15:17
【问题描述】:

可能基于这个问题:Best way to strip html tags from a string in sql server?

把我当成菜鸟。我有一个包含数据的字段。我需要从该列中删除 html,并且我知道有一个 PHP 函数可以执行此操作。如何在我的 SQL 数据库中执行此操作?

我要为查询输入什么?从表中选择我的列(我称之为字段)......然后呢?

【问题讨论】:

  • 您可以从表中选择列以及某种 id。然后清理它们,然后更新它们,这就是 id 派上用场的地方。所以你会知道你正在更新正确的行。
  • 在将内容放入数据库之前剥离 HTML 不是更容易吗?
  • 我假设您没有使用 SQL-Server,因为其他问题解释了如何在那里进行操作。您使用的是什么 DBMS?
  • 所以你想在没有 PHP 但严格使用 sql 的情况下从数据库中删除 html?那是因为你知道strip_tags() 函数。
  • 我想用 PHP 但不知道去哪里

标签: php mysql strip-tags


【解决方案1】:

使用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()函数和这个简单的正则表达式&lt;[^&gt;]*&gt;

echo preg_replace('/<[^>]*>/', '', $row['column']);

Working PHP demo

推荐方法:本例中为strip_tags()函数。它需要两个参数;第一个是文本本身,第二个包含allowed tags;因此,例如,如果您想保留 &lt;a&gt; 并清理其他所有内容,您只需像这样使用它:

strip_tags($text, '<a>');

【讨论】:

    【解决方案2】:

    我不是 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 在代码中的某处.. 它位于查询上方,因为如果您使用尚未定义的函数,您将度过一段糟糕的时光。
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    相关资源
    最近更新 更多