Home > php教程 > php手册 > body text

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

WBOY
Release: 2016-05-25 16:41:14
Original
1111 people have browsed it

我们经常会发现我们有提交留方的地方就会有很多的来发广告,后来想做一个屏蔽过滤指定关键字的功能,我搜索了几种方法介绍给大家有需要了解的朋友可参考.

思路:

一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少.

二、PHP读取关键字文本,存入一个数组.

三、遍历关键字数组,挨个用strpos函数去看看内容有没有关键字,如果有,返回true,没有则返回false.

PHP代码如下:

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

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

<?php
/** 
 * 被禁止的关键字检测
 *
 * @param string $string  要检测的字符串
 * @param string $fileName 屏蔽关键字文件
 * @return bool
 */
function banwordCheck($string, $fileName) {
    if (!($words = file_get_contents($fileName))) {
        die(&#39;file read error!&#39;);
    }
    $string = strtolower($string);
    $matched = preg_match(&#39;/&#39; . $words . &#39;/i&#39;, $string, $result);
    if ($matched && isset($result[0]) && strlen($result[0]) > 0) {
        if (strlen($result[0]) == 2) {
            $matched = preg_match(&#39;/&#39; . $words . &#39;/iu&#39;, $string, $result);
        }
        if ($matched && isset($result[0]) && strlen($result[0]) > 0) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
$content = &#39;测试关键字&#39;;
if (banwordCheck($content, &#39;./banwords.txt&#39;)) {
    echo "matched! ";
} else {
    echo "no match! ";
}
?>
Copy after login


本文链接:

收藏随意^^请保留教程地址.

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!