需求:如果我们要在文本中要过滤掉一些过敏词汇,那我们可以使用PHP中的正则表达式preg_match()函数来实现过滤敏感词.
首先了解下preg_match()函数:
描述:preg_match()函数用来在字符串搜索所有与给出的正则表达式匹配的内容,如果存在则返回true,否则返回true.
语法:int preg_match( string pattern,string subject [,array matches [, int flags]])
preg_match()函数的参数说明:
pattern 必要参数.需要匹配的正则表达式
subject 必要参数.输入的字符串
matches 可选参数.输出的搜索结果的数组.
flags 可选参数.标记:PREG_OFFSET_CAPTURE,对每个出现的匹配结果也同时返回其附属的字符串偏移量.本标记自PHP 4.3.0可用.
例一: 我们需要过滤敏感词"暴力".
<?php
if(preg_match("/暴力/","我想看暴力电影,我要看革命电影,我要看屌丝电影",$matches))
{
print "查到过敏词汇:".$matches[0];
}
else
{
print "字符串中没有过敏词汇.";
}
?>
输出结果: 查到过敏词汇:暴力
例二:如果文本有"暴力,革命,屌丝"词汇,我们需要过滤.
<?php
$words = array('暴力','革命','屌丝'); //把过敏词放入数组
for($i=0;$i<count($words);$i++){ //应用for循环语句对敏感词进行判断
if(preg_match("/".trim($words[$i]."/"),"我要看革命电影,我要看屌丝电影",$matches))
{
print "查到过敏词汇:".$matches[0]."<br>";
}
}
?>
输出结果:
查到过敏词汇:革命
查到过敏词汇:屌丝