需求:如果我們要在文本中要過濾掉一些過敏詞彙,那我們可以使用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>";
}
}
?>
輸出結果:
查到過敏詞彙:革命
查到過敏詞彙:屌絲