1

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

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

4

5 回答 5

5

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

采用:

if (isset($_POST['block_name']) && strlen(trim($_POST['block_name'])) > 0)
于 2013-01-28T11:35:51.807 回答
0

你可以检查空格

  if( (strlen($string) == 1 ) && strpos(trim($string)," ")){

   echo "the string contains only a blank space";

  }
于 2013-01-28T11:35:11.997 回答
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...

于 2013-01-28T11:35:18.963 回答
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";
}
于 2013-01-28T11:38:54.377 回答
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";
    }

感谢他的回答。

于 2013-01-28T11:59:57.877 回答