求帮助,PHP扫描匹配关键字 请问一下怎么用PHP实现以下功能:从txt中取出一个词后,与数据库进行关键字匹配,找出是否存在这个词。其实是一个敏感字检测系统,从网络爬虫上爬到内容,提取关键字后保存为txt文件,接着就要对这个txt文件进行检测,看有没有存在非法的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /*纪录非法关键字表的结构idkey*/$txt = file_get_contents('test.txt'); // 文章内容// 读取非法关键字表$sqlstr = "select * from table";$query = @mysql_query($sqlstr) or die(mysql_error());$keys = array();while($thread = mysql_fetch_assoc($query)){ $keys[] = $thread['key'];}// 纪录文章中包含的非法关键字$result = array();foreach($keys as $k=>$v){ if(strpos($txt, $key)!==false){ array_push($result, $key); }}// 打印文章中包含的非法关键字print_r($result); 提取关键字后保存为txt文件,然后用该词与数据库保存的词比较是这个意思吗?如果是单个词,直接比较就是了 .... where word=’word'如果是多个词,那就用逗号连接成串 .... where find_in_set(word, '连接后的串')问题恐怕没有这么简单,既然是 从网络爬虫上爬到内容 那么你如何提取 关键字 呢?如果恰好将非法关键字给切断了呢?所以,应该是将已知非法关键字制作成词典(比如 trie 树),这样只需对外来的内容做一趟扫描就可以了有关 trie 树的讨论,精华区有收录。你可以参考一下 PHP 读取TXT文本问题 PHP GLOBAL 变量 与STATIC变量的区别 mysql phpmyadmin问题 网站的广告是通过怎样一个过程来实现监控的 问一个mysql_fetch_array的问题 昨天在做数据库批量导入的时候遇到的老问题(foreach+&问题) 请教,表单中的文件上传。 任务还没完成,但IE的状态栏已显示为完成。为何?? 感觉PHP程序运行速度很快 php在linux下面传大文件有问题!!! eclipse for php 怎么自动加载工作区间的项目? thinkphp中使用ajax的load方法怎么实现多个表的下拉框表的多级联动
/*纪录非法关键字表的结构
id
key
*/$txt = file_get_contents('test.txt'); // 文章内容// 读取非法关键字表
$sqlstr = "select * from table";
$query = @mysql_query($sqlstr) or die(mysql_error());
$keys = array();
while($thread = mysql_fetch_assoc($query)){
$keys[] = $thread['key'];
}// 纪录文章中包含的非法关键字
$result = array();foreach($keys as $k=>$v){
if(strpos($txt, $key)!==false){
array_push($result, $key);
}
}// 打印文章中包含的非法关键字
print_r($result);
是这个意思吗?
如果是单个词,直接比较就是了 .... where word=’word'
如果是多个词,那就用逗号连接成串 .... where find_in_set(word, '连接后的串')问题恐怕没有这么简单,既然是 从网络爬虫上爬到内容 那么你如何提取 关键字 呢?如果恰好将非法关键字给切断了呢?
所以,应该是将已知非法关键字制作成词典(比如 trie 树),这样只需对外来的内容做一趟扫描就可以了
有关 trie 树的讨论,精华区有收录。你可以参考一下