0
我知道我會得到很多asinine的評論,但我無法弄清楚這一點,無論我做什麼。我在這裏有一個功能Preg Match ^與php^
$filter = mysql_query("SELECT * FROM `filter`");
$fil = mysql_fetch_array($filter);
$bad = $fil['filter'];
$bword = explode(",", $bad);
function wordfilter($output,$bword){
$badWords = $bword;
$matchFound = preg_match_all("/(" . implode($badWords,"|") . ")/i",$output,$matches);
if ($matchFound) {
$words = array_unique($matches[0]);
foreach($words as $word) {
$output = preg_replace("/$word/","*****",$output);
}
}
return $output;
}
我知道不好的字過濾器是皺眉,但我的客戶已經要求這樣。
現在我在數據庫中有一個列表,這裏有幾個條目。
^ass$,^asses$,^asshopper,^cock$,^coon,^cracker$,^cum$,^dick$,^fap$,^heeb$,^hell$,^homo$,^humping,^jap$,^mick$,^muff$,^paki$,^phap$,^poon$,^spic$,^tard$,^tit$,^tits$,^twat$,^vag$,ass-hat,ass-pirate,assbag
正如你所看到的,我對某些單詞使用了旋轉曲線和美元符號。
我遇到的問題是,與前三個單詞開頭ass
它擋住了,即使我喜歡寫東西glasses
或grasshoppers
但一切都會過去的第3做工精細的話,我嘗試了這些前增加3項在這種情況下,這是問題,但不幸的是不是。
我寫這封信有什麼不對嗎?
你應該看看開源解決方案的這個代替你自己發明的機制。 –
@SalmanA我已經嘗試了很多開源腳本,但是沒有一個完全按照我需要的方式來執行 – kira423
嘗試將您的正則表達式更改爲''/\b('bim">'/\b('badwords)'。 )\ b/i''並刪除數據庫中的'^'和'$'。 – Passerby