我试图阻止用户输入空的用户名。要确定空格,我使用以下代码:
if (strlen($nickname) > 0 && strlen(trim($nickname)) == 0)
{
die("Your username is empty");
}
它可以工作,但是当用户同时按下 Alt+0160 和空格时,上述条件不成立,那么我如何确定用户名是否仅包含空格和 alt+0160 或任何其他导致空字符的字符?
您可以先过滤字符串
$string = filter_var($string,FILTER_SANITIZE_STRING , FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );
试试这样:
$nickname = preg_replace("/[^A-Za-z0-9]/","",$str); //only things from the alfabet + numbers
if( strlen( $nickname ) < 1){
// error
}
你过滤掉你不想要的东西(在这种情况下,只允许你想要的东西),然后检查字符串的长度。