導語:現在網路資訊監管很嚴格,特別是遮蔽關鍵字。下面是PHP遮蔽關鍵字的方法,希望對你有所幫助:
第一種方法
思路 用正則去匹配關鍵字,把關鍵字用別的字元替換
$str = "/你大爺|你痺|什麼玩意|SB|你 /"; // 關鍵字正則字串
$string = "你幹什麼玩意了 SB"; // 文字字串
echo preg_replace($str, "*", $string); //preg_replace() 執行一個正則表示式的匹配和替換
OK 方法一結束 挺簡單把 大家在看的時候可以根據思路自己先去想
方法二
思路
1.把關鍵字放到一個txt文件中 要用一定的符合分隔開 ,用file_get_contents() 函式將關鍵字文件讀入
2.用函式explode() 把字串分割成陣列 迴圈陣列 strpos() 查詢匹配關鍵字
header('content-type:textml; charset=utf-8;');
function strPosF uck($content)
{
$f uck = file_get_contents(''); // 讀取關鍵字文字資訊
$content = trim($content); $f uckArr = explode(" ",$f uck); // 把關鍵字轉換為陣列
for ($i=0; $i < count($f uckArr) ; $i++)
{
// $f uckArr[$i] = trim($f uckArr[$i]);
if ($ f uckArr[$i] == "") {
continue; //如果關鍵字為空就跳過本次迴圈
# code...
}
if (strpos($content,trim($f uckArr[$i])) != false)
{
return $f uckArr[$i]; //如果匹配到關鍵字就返回關鍵字
# code...
}
} return false; // 如果沒有匹配到關鍵字就返回 false
}
$content = "我今天你大爺碰到一個SB";
$key = strPosF uck($content);
if ($key)
{
echo "存在關鍵字".$key;
# code...
}
else
{
echo "OK";
}
注意點 一定要去空
strops() 函式返回值 要麼是false 要麼就是關鍵字的'位置 判斷的時候注意
成功後大家可以想想怎麼把匹配到的關鍵字全部返回組成一個字串或者陣列。