массивы — STR Функция [PHP]

Ну, ребята, я здесь, потому что я хочу сделать что-то продвинутое на своем сайте, и я не знаю, как это сделать и, если возможно, сделать это.

Это вот так:

Кто-то зарегистрируется на моем сайте и будет иметь функцию, чтобы проверить, заблокировано ли это имя или нет в «array ()», но некоторые специальные символы можно добавить к вашему имени, например «.», «-» … И если я регистрируюсь как это имя «ADM», моя проверка не работает.

Ребята, вы можете помочь мне с этим?

Моя функция:

final static function isBlockedName($name) {
$blockedNames = array ('mod', 'adm', 'staff');
foreach($blockedNames as $list) {
if(strtolower($name) == strtolower($list)) {
self::AddBan('user','157788000',self::getUserID($name),'Nome Impróprio','3');
session_destroy();

header('Location: /');
exit;
}
}
foreach($blockedNames as $two) {
if(strpos(strtolower($name), strtolower($two)) !== false) {
self::AddBan('user','157788000',self::getUserID($name),'Nome Impróprio','3');
session_destroy();

header('Location: /');
exit;
}
}
return false;
}

Извините за мой плохой английский 🙁

-1

Решение

Ты можешь использовать str_replace удалить эти специальные символы из имени в сравнении. + Изменить

if(strtolower($name) == strtolower($list)) {

в

if(strtolower(str_replace(array('.', '-'), '', $name)) == strtolower($list)) {

Альтернативный способ заключается в использовании in_array вместо foreach цикл:

if(in_array(str_replace(array('.', '-'), '', $name), $blockedNames)) {
// do something
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]