Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找与类sql语句匹配的单词和位置_Php_Mysql_Regex_String_Sql Like - Fatal编程技术网

Php 查找与类sql语句匹配的单词和位置

Php 查找与类sql语句匹配的单词和位置,php,mysql,regex,string,sql-like,Php,Mysql,Regex,String,Sql Like,我正在使用一个非常长的查询来检测我的用户名中的冒犯性词语 我已经做了一个版主页面,版主可以点击检测到的用户名旁边的按钮,它将用*替换冒犯的单词。问题是我怎样才能轻易地发现哪个冒犯性的词以及在哪里替换 我想我需要使用某种描述的正则表达式,其功能与LIKE语句完全相同。帮助创建这样一个正则表达式将是非常合适的,或者。。。如果有人有更好的解决方案 TIA您可以在php中尝试以下函数 similar_text() levenshtein() soundex() 您可以创建一个简单的脚本来匹配单词,然后

我正在使用一个非常长的查询来检测我的用户名中的冒犯性词语

我已经做了一个版主页面,版主可以点击检测到的用户名旁边的按钮,它将用*替换冒犯的单词。问题是我怎样才能轻易地发现哪个冒犯性的词以及在哪里替换

我想我需要使用某种描述的正则表达式,其功能与LIKE语句完全相同。帮助创建这样一个正则表达式将是非常合适的,或者。。。如果有人有更好的解决方案


TIA

您可以在php中尝试以下函数

similar_text()
levenshtein()
soundex()
您可以创建一个简单的脚本来匹配单词,然后根据需要替换这些单词

检查文档

类似于:

$bad_list = array('foo','barr','ax'); // list of bad words you want to *

$from = array();
$to = array();

foreach($bad_list as $s){
    $from[] = '/'.preg_quote($s,'/').'/'; // PHP expects regex in delimiter.
    $to[] = str_repeat('*',strlen($s));
}
$str = "afoob";
$str = preg_replace($from,$to,$str); // $str is now a***b
您也可以使用
str\u replace
,这里确实不需要正则表达式