找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1727|回复: 0
打印 上一主题 下一主题

PHP中使用strpos函数实现屏蔽敏感关键字功能

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 05:55:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            现在网络信息监管很严格,特别是屏蔽关键字。特别是现在WEB2.0时代,网站的内容几乎都是来自网民发布,站长管理即可。如果你希望别人在你站点禁止发布某个关键字,那么就需要预先做处理。用PHP做关键字屏蔽的功能样式有多种多样,如正则是最普遍的一种,这里就不一一例举,本文介绍使用PHP函数strpos屏蔽关键字的功能。
思路:
一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。
二、PHP读取关键字文本,存入一个数组
三、遍历关键字数组,挨个用strpos函数去看看内容有没有关键字,如果有,返回true,没有则返回false。
PHP代码如下:
[U]复制代码[/U] 代码如下:
/**
* 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
写完代码后,故意在变量$content中写了一个关键字内容,然后运行发现没有检测到关键字,执行结果是通过,换成其它禁止的关键字都通过。
郁闷,开始判断是不是哪里出问题。
编码问题? 立即把keyWord.txt文件再次用记事本打开,然后另存为UTF-8格式。结果还是不行。
没有获取到keyWord.txt文本内容? 立即 print_r() 发现正常读取并按行转成了数组。
于是,我把关键字数组直接声明写成死的在程序中:
[U]复制代码[/U] 代码如下:
如果在PHP中声明关键字数组,就能起到作用,如果读取文本文件就无效,见鬼了?
正在百思不得其解之时,想到了会不会是从文本文件中读取的内容有空格或者换行符没有过滤所导致?于是在遍历匹配那里加了一个trim函数。
加了trim()函数过滤空白后运行通过测试,原来瞎折腾了半天问题就在这里。
[U]复制代码[/U] 代码如下:
/**
* 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
            
            
您可能感兴趣的文章:
  • php下使用strpos需要注意 === 运算符
  • php中的strpos使用示例
  • Lua中实现php的strpos()以及strrpos()函数
  • php中字符查找函数strpos、strrchr与strpbrk用法
  • php根据指定位置和长度获得子字符串的方法
  • php通过strpos查找字符串出现位置的方法
  • php实现指定字符串中查找子字符串的方法
  • php使用substr()和strpos()联合查找字符串中某一特定字符的方法
  • PHP字符串中插入子字符串方法总结
  • php实现子字符串位置相互对调互换的方法
  • PHP中strpos、strstr和stripos、stristr函数分析
  • php使用strpos判断字符串中数字类型子字符串出错的解决方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端