С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 20/01/17 в 20:55 |
Предположим, на сайте есть пользователь с ником, например, "Ольга".
Как бы запретить регистрацию ников, которые выглядят так же или очень похоже, например, с русской "а" или "О", или с нулём вместо "О" и т.п.?
Нужна функция, которая сравнивает два ника и говорит, слишком ли они похожи, или нет.
|
|
|
|
С нами с 25.12.14
Сообщения: 602
Рейтинг: 441
|
Добавлено: 20/01/17 в 21:41 |
замутить ИИ который будет решать, слишком похожи ники или нет
p.s.
==================================
пардон, подкрепил знания в доках
<?php
$var_1 = 'Ольга';
$var_2 = '0льга';
similar_text($var_1, $var_2, $percent);
echo $percent;
ну а дальше, задай процент, который устроит, и вперед.
p.p.s. ну пых, каждый день что-то новое
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 21/01/17 в 14:16 |
Наверное, нужно даже не столько знать, как сильно похожи две строки, сколько уметь приводить строку к некоему "стандартному" виду. Например, заменять отдельные символы по правилам типа:
'0' => 'O',
'1' => 'l',
'А' => 'A',# cyr->lat
'а' => 'a',# cyr->lat
...
В БД дополнительно записаны приведённые к стандартному виду имена аккаунтов. При реге нового в БД ищется совпадение приведённого к стандартному виду нового имени с уже существующими в БД. Если нашлось - нельзя регаться.
Собственно, нужна как можно более полная таблица похожих юникод-символов.
|
|
|
|
С нами с 25.12.14
Сообщения: 602
Рейтинг: 441
|
Добавлено: 21/01/17 в 15:56 |
|
|
|
|
С нами с 06.07.15
Сообщения: 110
Рейтинг: 171
|
Добавлено: 22/01/17 в 22:49 |
Как вариант переводить в транслит и снова сравнивать с транслитом оригинала транслит(ввод)=транслит(оригинал): olga==olga = true, этот пример только с разными раскладками катит, где О русская меняется на O английскую.
Но можно функцию приведения к единому транслиту сделать для каждой раскладки и цифры учесть.
Есть еще поиски по фонетическому сравнению, туда не копал.
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |