• PHP过滤评论关键词


    <?php
    
    /**
     * PHP中屏蔽过滤指定关键字实现方法总结
     * http://www.111cn.net/phper/phpanqn/46225.htm
     * 
     * 思路:
     * 一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。
     * 二、PHP读取关键字文本,存入一个数组
     * 三、遍历关键字数组,挨个用strpos函数去看看内容有没有关键字,如果有,返回true,没有则返回false
     */
    
    
    /* PHP中用strpos函数过滤关键字 */
    function keyWordCheck($str){
        $str = trim($str); // 去除空白
        $content = @file_get_contents('keyWords.txt'); // 读取关键字文本
        $arr = explode(",", $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];
            }
        }
        return false; // 如果没有检测到关键字则返回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! ";
    }
  • 相关阅读:
    iPhone 12 Pro 不锈钢边框刮伤 All In One
    .vscodeignore All In One
    程序员如何挑选和购买一款高性价比的电动升降桌 All In One
    TypeScript function arguments destructuring All In One
    LeetCode 旋转数组算法题解 All In One
    python 中实现DNA一致性序列计算
    python中输出两条长度一致序列碱基不同的个数
    python 中统计不同scafflod的GC含量并输出GC含量最高的scafflod
    python 中 斐波那契兔子问题
    python 中如何将列表中的数值转换为字符串
  • 原文地址:https://www.cnblogs.com/rxbook/p/6008889.html
Copyright © 2020-2023  润新知