如何真正确定空字符串?

时间:2013-02-15 20:29:55

标签: php string

我正在尝试阻止用户输入空的用户名。 要确定空格,我使用此代码:

if (strlen($nickname) > 0 && strlen(trim($nickname)) == 0)
{
die("Your username is empty");
}

它可以工作但是当用户同时按下Alt + 0160和空格时,上面的条件不成立,那么如何确定用户名是否仅包含空格和alt + 0160或任何其他导致空char的字符?

2 个答案:

答案 0 :(得分:2)

您可以先简单地过滤字符串

$string = filter_var($string,FILTER_SANITIZE_STRING , FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );

答案 1 :(得分:1)

试试这样:

$nickname = preg_replace("/[^A-Za-z0-9]/","",$str); //only things from the alfabet + numbers
if( strlen( $nickname ) < 1){
  // error
}

你过滤掉你不想要的东西(在这种情况下,只允许你想要的东西),然后检查字符串的长度。