我有以下代码来检查用户输入:
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。有什么区别,建议使用哪种。
答案 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的回答。