【问题标题】:Exclude HTML tags in a database search在数据库搜索中排除 HTML 标记
【发布时间】:2015-08-10 02:21:23
【问题描述】:

我在数据库中有列(类型:文本),其中存储了一些 HTML 代码。我想搜索该列,但我想忽略标签。例如,如果我搜索 'div',我想忽略所有 '

' 或 '
'。

这是我的 where 子句的一部分:

$tag1 = '<'.$term;
$tag2 = '</'.$term.'>';
$where_uk = " and s.html like '%". $term ."%' and not ( s.html like '$tag1' and  s.html like '$tag2') ";

但是当我回应它时,我得到了:

and s.html like '%term%' and not ( s.html like '') 

我做错了什么? 谢谢

编辑: 我已经解决了

$tag1 = '&lt;'.$term.'%';
$tag2 = '&lt;/'.$term.'&gt;';

回声是:

and s.html like '%div%' and not ( s.html like '<div%' and s.html like '</div>')

你能告诉我这是忽略标签的正确方法吗?

【问题讨论】:

  • 您做得对,但是当您回显并在浏览器中检查时,它正在尝试呈现 HTML 元素。尝试任何 CLI 来输出您的 PHP 或检查 Firebug 响应选项卡以确保。
  • 我看到了,但我不想写程序...我还是解决了,谢谢
  • 您的解决方案可能会在屏幕上显示正确的查询,但不一定与数据库中的内容匹配。正如@Joy 指出的那样,尝试从命令行查看实际输出。

标签: php html mysql sql


【解决方案1】:

你可以使用 mysql 正则表达式,类似这样 WHERE name REGEXP ".[^].";

【讨论】:

    猜你喜欢
    • 2017-01-20
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多