また、ニックネームの類似性(視覚的に)のチェックもあります。 ニックネームに「a」(英語)ではなく「a」(ロシア語)などが含まれている場合はfalseが生成されます。
function checkUsr($name)
{
$name = strtolower($name); //strtolower
$replace_word = array ('e' => '[e]', 'r' => '[r]', 't' => '[t]', 'y' => '[y]','u' => '[u]','i' => '[i1l!]','o' => '[o0]','p' => '[p]','a' => '[a]','s' => '[s5]','w' => 'w','q' => 'q','d' => 'd','f' => 'f','g' => '[g]','h' => '[h]','j' => 'j','k' => '[k]','l' => '[l1i!]','z' => 'z','x' => '[x%]','c' => '[c]','v' => '[vu]','b' => '[b]','n' => '[n]','m' => '[m]','' => '[u]','' => '','' => '[y]','' => '[e]','' => '[h]','' => '[r]','' => '[w]','' => '[w]','' => '[3]','' => '[x%]','' => '[]','' => '','' => '(|[i1l!]?)','' => '[b]','' => '[a]','' => '[n]','' => '[p]','' => '[o0]','' => '[n]','' => '','' => '','' => '[3]','' => '[]','' => '[4]','' => '[c]','' => '[m]','' => '[u]','' => '[t]','' => '[b]','' => '[6]','' => '(|[!1il][o0])','' => '[e]','1' => '[1il!]','2' => '2','3' => '[3]','4' => '[4]','5' => '[5s]','6' => '[6]','7' => '7','8' => '8','9' => '9','0' => '[0o]','_' => '_','#' => '#','%' => '[%x]','^' => '[^~]','(' => '[(]',')' => '[)]','=' => '=','.' => '[.]','-' => '-');
$name = strtr($name, $replace_word);
$query = mysql_query("SELECT * FROM tblname1 WHERE LOWER(name) REGEXP '[[:<:]]".$name."[[:>:]]'");
if (mysql_fetch_array($query)) {
return false;
}
return true;
}