PHP屏蔽过滤指定关键字的方法,php屏蔽过滤关键字
PHP屏蔽过滤指定关键字的方法,php屏蔽过滤关键字
本文实例讲述了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
// 如果此数组元素为空则跳过此次循环
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! ";
}
希望本文所述对大家的PHP程序设计有所帮助。
判断某段文字里面是否包含某字符串或某些字符串,可以通过preg_match来判断,对于留言薄或者论坛来说,可以判断是否包含某些敏感关键字,来决定是否过滤,是否允许发表
各敏感词之间用符号 “|"分割,因为在正则里面 "|"相当于"或"的意思
$badkey = "敏感词|敏感词B|敏感词C";
$string = "我是不含有敏感词的,我要发表";
if(preg_match("/$badkey/i",$string)){
echo "对不起,含有含有敏感字符,不允许发表";
}else{
//do something...
}
?>
而preg_replace则可以用来进行 关键词过滤(脏话过滤)
php可以用preg_replace来过滤脏话
$badstring="tmd|妈的|TNND|她娘的";
$string="你tmd说什么,她娘的,不是人";
echo preg_replace("/$badstring/i",'',$string);
?>
$allergicWord = array('脏话','骂人话');
$str = '这句话里包含了脏话和骂人话';
for ($i=0;$i
if($content>0){
$info = $content;
break;
}
}
if($info>0){
//有违法字符
return TRUE;
}else{
//没有违法字符
return FALSE;
}
?>
版本:
html>
head>
/head>
form action="" method="post" name="form1" >
input name="word" type="text" />
input name="" type="submit" onclick="return chkValue();" value="确认"/>
/form>
script type="text/javascript">
function chkValue() {
var val = document.form1.word.value,
array = ["acd","svd","fdg","fdk"];
for( var i = array.length; i--;) {
if( val.indexOf( array[i] ) !== -1 ) {
alert('有敏感字符:' + array[i]);
return false;
}
}
return true;
}
/script>
/html>
PHP版本
?php
$content = "afjvahsv sjv sdjavcvacvdjgfsacdaldkfja sfcjasldfj ";
$keyword = array( "acd","svd","fdg","fdk" );
for( $i = count($keyword); $i--; ) {
if( strpos( $content, $keyword[$i] ) !== false ) {
echo "出现敏感字符:{$keyword[$i]}";exit();
}
}
?>
百世岁月当代好 千古江山今朝新 万象更新

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다
