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


php check if user input is not space

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

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。有什么区别,推荐哪个。

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

用:

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

您可以使用以下命令检查空格

  if( (strlen($string) == 1 ) && strpos(trim($string)," ")){
   echo "the string contains only a blank space";
  }

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...

使用此条件语句。我希望它会起作用。

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";
}

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

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";
    }

谢谢你的回答。