字符串函数 [PHP]
STR Function [PHP]
好吧,我来这里是因为我想在我的网站上做一些高级的事情,但我不知道该怎么做,如果可能的话。
是这样的:
有人会在我的网站上注册并有一个功能来验证这个名字是否在 "array()" 中被阻止,但是一些特殊字符可以放在你的名字上,比如“.”,“- “...如果我像这个名字一样注册 "A.D.M",我的验证不起作用。
你们可以帮我解决这个问题吗?
我的函数:
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;
}
对不起我的英语不好:(
您可以使用 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
}
好吧,我来这里是因为我想在我的网站上做一些高级的事情,但我不知道该怎么做,如果可能的话。
是这样的:
有人会在我的网站上注册并有一个功能来验证这个名字是否在 "array()" 中被阻止,但是一些特殊字符可以放在你的名字上,比如“.”,“- “...如果我像这个名字一样注册 "A.D.M",我的验证不起作用。
你们可以帮我解决这个问题吗?
我的函数:
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;
}
对不起我的英语不好:(
您可以使用 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
}