PHP / SQL-搜索数据库时忽略HTML标记

时间:2019-02-12 13:36:18

标签: php mysql

在这种情况下,我需要按课程摘要搜索,其中包含带有HTML标签的数据。

现在的情况是,我正在编写SQL以通过摘要进行搜索。摘要列必须包含HTML标记。我该如何忽略HTML标签来编写HTML。

查询搜索:

$getids = $DB->get_records_sql("SELECT id FROM {course} WHERE (summary LIKE '%$searchcourse%' ) "

数据库中的方式摘要列: enter image description here

我遵循了类似的链接,但无法获取太多信息。

谢谢

1 个答案:

答案 0 :(得分:1)

我自己没有尝试过。 来源:http://forums.mysql.com/read.php?52,177343,177985#msg-177985

SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty varchar(4000) )
RETURNS varchar(4000)
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;
    RETURN Dirty;
END;

在您的代码中

$getids = $DB->get_records_sql("SELECT id FROM {course} WHERE fnStripTags(summary) LIKE '%$searchcourse%'