当前位置:   article > 正文

MySql、html标签、内容过滤查询_mysql语句html代码

mysql语句html代码

在实际开发中,我们通常需要从数据库中获取某个字段的值,但是这个字段中可能含有HTML标签,如下面这个例子:

<p>这是一段包含HTML标签的文本,<strong>加粗</strong><em>斜体</em><a href="https://www.example.com">链接</a></p>
  • 1

如果我们希望在查询时忽略这些HTML标签,只关注文本内容,就可以使用上述MySQL函数。

使用方法很简单,只需要在查询语句中调用该函数即可。比如,如果我们希望查找上述例子中包含“链接”的记录,可以这样写查询语句:

SELECT * FROM my_table WHERE fnStripTags(my_html_field) LIKE '%链接%';
  • 1

这个查询语句会先调用fnStripTags()函数过滤掉HTML标签,然后再在过滤后的文本中查找“链接”字符串。这样就能查找到包含“链接”的记录,而不会受到HTML标签的影响。

CREATE DEFINER=`root`@`localhost` FUNCTION `fnStripTags`( Dirty TEXT ) RETURNS text CHARSET utf8
    DETERMINISTIC
BEGIN  
  DECLARE iStart, iEnd, iLength INT;   
    WHILE LOCATE( '<', Dirty ) > 0 AND LOCATE( '>', Dirty, LOCATE( '<', Dirty )) > 0 DO   
      BEGIN  
        SET iStart = LOCATE( '<', Dirty ), iEnd = LOCATE( '>', Dirty, LOCATE('<', Dirty ));   
        SET iLength = ( iEnd - iStart) + 1;   
        IF iLength > 0 THEN  
          BEGIN  
            SET Dirty = INSERT( Dirty, iStart, iLength, '');   
          END;   
        END IF;   
      END;   
    END WHILE;
    
     WHILE LOCATE( '&nb和谐显示sp;', Dirty ) > 0 DO   
      BEGIN  
        SET iStart = LOCATE( '&nb和谐显示sp;', Dirty );   
        SET iLength = 6;
        SET Dirty = INSERT( Dirty, iStart, iLength, '');         
      END;   
    END WHILE;    
       
    RETURN Dirty;   
END
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

需要注意的是,这个函数只能过滤HTML标签、 ,不能过滤其他类型的特殊字符,如JavaScript代码、CSS样式等。如果需要过滤其他类型的特殊字符,就需要另外编写过滤函数。

希望这些说明对读者有所帮助,谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/855281
推荐阅读
相关标签
  

闽ICP备14008679号