PHP中屏蔽过滤指定关键字实现方法总结

思路:
一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。
二、PHP读取关键字文本,存入一个数组
三、遍历关键字数组,挨个用strpos函数去看看内容有没有关键字,如果有,返回true,没有则返回false

PHP代码如下:

 代码如下 复制代码

/* PHP中用strpos函数过滤关键字 */
// 关键字过滤函数
function keyWordCheck($content){
// 去除空白
$content = trim($content);
// 读取关键字文本
$content = @file_get_contents('keyWords.txt');
// 转换成数组
$arr = explode("n", $content);
// 遍历检测
for($i=0,$k=count($arr);$i<$k;$i++){
// 如果此数组元素为空则跳过此次循环
if($arr[$i]==''){
continue;
}
// 如果检测到关键字,则返回匹配的关键字,并终止运行
if(@strpos($str,trim($arr[$i]))!==false){
//$i=$k;
return $arr[$i];
}
}
// 如果没有检测到关键字则返回false
return false;
}
$content = '这里是要发布的文本内容。。。';
// 过滤关键字
$keyWord = keyWordCheck($content);
// 判断是否存在关键字
if($keyWord){
echo '你发布的内容存在关键字'.$keyWord;
}else{
echo '恭喜!通过关键字检测';
// 往下可以进行写库操作完成发布动作。
}

例子2 (注:中文关键字过滤时使用的关键字文件为utf-8编码

 代码如下 复制代码

/**
 * 被禁止的关键字检测
 *
 * @param string $string  要检测的字符串
 * @param string $fileName 屏蔽关键字文件
 * @return bool
 */
function banwordCheck( $string, $fileName )
{
 if ( !($words = file_get_contents( $fileName )) ){
  die('file read error!');
 }
 $string = strtolower($string);
 $matched = preg_match('/'.$words.'/i', $string, $result);
 if ( $matched && isset($result[0]) && strlen($result[0]) > 0 )
 {
  if ( strlen($result[0]) == 2 ){
   $matched = preg_match('/'.$words.'/iu', $string, $result);
  } 
  if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ) {
   return true;
  }else{
   return false;
  }  
 }else{
  return false;
 }
}

$content = '测试关键字';
if ( banwordCheck($content, './banwords.txt') ){
 echo "matched! ";
}else{
 echo "no match! ";
}

时间: 2024-08-04 03:10:50

PHP中屏蔽过滤指定关键字实现方法总结的相关文章

PHP屏蔽过滤指定关键字的方法_php技巧

本文实例讲述了PHP屏蔽过滤指定关键字的方法.分享给大家供大家参考.具体分析如下: 实现思路: 一.把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少. 二.PHP读取关键字文本,存入一个数组 三.遍历关键字数组,挨个用strpos函数去看看内容有没有关键字,如果有,返回true,没有则返回false PHP代码如下: 复制代码 代码如下: /* PHP中用strpos函数过滤关键字 */ // 关键字过滤函数 function keyWordCheck($content){ //

PHP过滤黑名单关键字的方法_php技巧

本文实例讲述了PHP过滤黑名单关键字的方法.分享给大家供大家参考.具体实现方法如下: 关键字过滤非常的简单把要过滤的内容存在数组或文档中,然后用户提交时我们进行preg_match或istrpos判断即可解决了,具体方法如下. 实例代码如下: 复制代码 代码如下: //过滤黑名单关键字函数 function check_($data){  $keywords = "你是大神吗|你好|去死";  if(preg_match("/$keywords/i",$data))

在Word长文档中快速定位指定信息的方法

在Word长文档中快速定位指定信息的方法 1.打开Word文档,在"开始"选项卡"编辑"选项组中,单击[查找]按钮右侧的下三角按钮( ),在随即打开的下拉列表中执行[转到]命令,打开"查找和替换"对话框,如图1所示.或者也可以使用[Ctrl]+[G]组合键打开该对话框. 图1 打开"查找和替换"对话框 2.在"定位"选项卡左侧的"定位目标"列表框中选择"页",在右侧&

云计算中加密数据的模糊关键字搜索方法研究

云计算中加密数据的模糊关键字搜索方法研究 陕西师范大学 杜军强 本论文从以下几个方面展开研究: 首先介绍了公钥加密关键字搜索的基本概念,从公钥加密搜索的定义出发介绍公钥加密关键字搜索的模型,从中引入公钥加密关键字搜索蕴含基于身份的加密.随后给出可搜索加密方案的构造,从双线性映射的概念.可证明安全性的概念.随机预言机模型与公钥加密的安全性来引入公钥加密关键字搜索具体方案的构造,最后对该方案的安全性做了分析证明. 其次提出支持多种字符串类似性操作的R+树来构建索引,实现云计算中对加密数据的模糊关键字

在SQL Server 2005所有表中搜索某个指定列的方法_mssql2005

有时候我们只知道列的名字,但是不知道这列数据到底在哪个表里面,那么可以用下面的办法把含有这列数据的表查找出来. 复制代码 代码如下: Select O.name objectName, C.name ColumnName from sys.columns C inner join sys.objects O ON C.object_id=O.object_id where C.name like '%ColumnName%'order by O.name, C.name   在你实际试用中,把C

在博客中屏蔽垃圾留言的简单方法_ruby专题

垃圾留言俗称 Spam,就是到处在留言框里发垃圾广告的那些,相信大多数人都见识过.以前使用 WordPress 的时候,因为装了防 Spam 的插件,可以屏蔽掉绝大多数的 Spam.但是自从上个月从 WordPress 迁移到新的博客平台后,第一天上线就遭遇了几个Spam,全都是国外的推广的广告什么的.博客的访问量本身就很小,如果每天都来几条 Spam,太煞风景了,手工删除也太浪费时间,而且又是自己写的小系统,也不可能有什么插件可选,只能自己想办法解决了. 看到有很多网站都是加个验证码来解决这个

查找oracle数据库表中是否存在系统关键字的方法_oracle

今天在工程中遇到"ORA-01747: user.table.column, table.column 或列说明无效"的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字. select * from v$reserved_words where keyword in( select COLUMN_NAME from all_tab_columns where table_name = '表名大写' and owner='用户名大写' ); ID可以忽略 以上是

DELPHI中的静态虚拟及动态方法函数的区别

1.静态方法是方法的缺省类型,对它就像对通常的过程和函数那样调用,编译器知道这些方法的地址,所以调用一个静态方法时它能把运行信息静态地链接进可执行文件,所以,静态方法速度最快,但它们却不能被覆盖来支持多态性. 2.虚拟方法和静态方法的调用方式相同.由于虚拟方法能被覆盖,在代码中调用一个指定的虚拟方法时编译器并不知道它的地址,因此,编译器通过建立虚拟方法表(VMT)来查找在运行时的函数地址.所有的虚拟方法在运行时通过VMT来高度,一个对象的VMT表中除了自己定义的虚拟方法外,还有它的祚的所有的虚拟

PHP屏蔽关键字实现方法_php实例

本文介绍了PHP屏蔽关键字实现方法,一共有两种实现方式,具体如下: 第一种方法 思路 用正则去匹配关键字,把关键字用别的字符替换 $str = "/你大爷|你麻痹|什么玩意|SB|你他妈/"; // 关键字正则字符串 $string = "你他妈干什么玩意了 SB"; // 文本字符串 echo preg_replace($str, "*", $string); //preg_replace() 执行一个正则表达式的匹配和替换 OK 方法一结束