Как стать автором
Обновить

Проверка ников на визуальную похожесть — PHP

Время на прочтение2 мин
Количество просмотров765
Проверка имени пользователя на существование в базе данных. Возвращает или true или false. Eсли false — то пользователь существует, если true — то можно продолжать регистрацию.
Также идёт проверка на похожесть (визуально) ников, т.е. выдаст false если ник содержит вместо «a» (английскую) «а» (русскую) и так далее.

function checkUsr($name)
{

$name = strtolower($name); //strtolower
$replace_word = array ('e' => '[eеё]', 'r' => '[rг]', 't' => '[tт]', 'y' => '[yу]','u' => '[uи]','i' => '[i1l!]','o' => '[oо0]','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][oо0])','ё' => '[ёеe]','1' => '[1il!]','2' => '2','3' => '[3зэ]','4' => '[4ч]','5' => '[5s]','6' => '[6б]','7' => '7','8' => '8','9' => '9','0' => '[0оo]','_' => '_','#' => '#','%' => '[%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;
}
Теги:
Хабы:
Всего голосов 17: ↑16 и ↓1+15
Комментарии16

Публикации