php检查用户输入是否不是空格

时间:2013-01-28 11:32:25

标签: php validation input

我有以下代码来检查用户输入:

if(isset($_POST['block_name']) && !empty($_POST['block_name'])) {
    $block->name = trim($_POST['block_name']);
}

但是它接受SPACE作为有效输入,所以我改为:

if(isset($_POST['block_name']) && !empty($_POST['block_name']) && trim($_POST['block_name'])!='') {
        $block->name = trim($_POST['block_name']);
    }

我在网上发现我可以使用!= false。有什么区别,建议使用哪种。

5 个答案:

答案 0 :(得分:4)

''等于false松散比较,所以没有真正的区别。由于'0'也等于false,因此您可能希望更严格地进行检查。如果未设置变量,empty也只是检查false而不会触发错误。因此isset && !empty开头是多余的。

使用:

if (isset($_POST['block_name']) && strlen(trim($_POST['block_name'])) > 0)

答案 1 :(得分:0)

您可以使用

检查空白区域
  if( (strlen($string) == 1 ) && strpos(trim($string)," ")){

   echo "the string contains only a blank space";

  }

答案 2 :(得分:0)

if(empty($_POST['block_name']))应该检查:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

所以,这应该最好:if(!empty(trim($_POST['block_name']))) { //proceed...

答案 3 :(得分:0)

使用此条件语句。我希望它能奏效。

if `$custSTR` is a sample string having spaces.

$custSTR = '     ';
if (strlen(trim(preg_replace('/\xc2\xa0/',' ',$custSTR))) == 0)
{
    echo "custSTR have space or empty.\n";
}

答案 4 :(得分:0)

毕竟我认为这种方式是最好的:

if(isset($_POST['block_name']) && strlen(trim($_POST['block_name'])) > 1) {
        $block->name = trim($_POST['block_name']);
    }
    else {
        $errors[] = "Please give a name for the new block. It should be at least 2 characters";
    }

感谢deceze的回答。