Home > Article > Backend Development > PHP keyword blocking implementation method
The first method
The idea is to use regular expressions to match keywords, and replace the keywords with other characters
$str = "/你好|再见|什么玩意|DY/"; // 关键字正则字符串 $string = "你干什么了? "; // 文本字符串 echo preg_replace($str, "*", $string); //preg_replace() 执行一个正则表达式的匹配和替换
Method two
Idea
1. Put the keywords in a txt document and use certain characters Separate them and use the file_get_contents() function to read the keyword document into
2. Use the function explode() to split the string into an array and loop the array strpos() to find matching keywords
code
header('content-type:textml; charset=utf-8;'); function strPosFuck($content) { $fuck = file_get_contents('keyWords.txt'); // 读取关键字文本信息 $content = trim($content); $fuckArr = explode("\n",$fuck); // 把关键字转换为数组 for ($i=0; $i < count($fuckArr) ; $i++) { // $fuckArr[$i] = trim($fuckArr[$i]); if ($fuckArr[$i] == "") { continue; //如果关键字为空就跳过本次循环 # code... } if (strpos($content,trim($fuckArr[$i])) != false) { return $fuckArr[$i]; //如果匹配到关键字就返回关键字 # code... } } return false; // 如果没有匹配到关键字就返回 false } $content = "我今天碰到一个SB"; $key = strPosFuck($content); if ($key) { echo "存在关键字".$key; # code... } else { echo "OK"; }
Notes Be sure to Remove the empty space. Be sure to remove the empty space. The return value of the
strops() function is either false or when judging the position of the keyword. Pay attention
After success, you can think about how to return all the matched keywords to form a string or Array