我有以下代码来检查用户输入:
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";
}
谢谢你的回答。