我有一个函数在插入数据库之前检查用户输入。它是这样的:
function fix ($data) {
if ((strlen($data) == 0) || (empty($data)) || ($data == "")) {
echo "Please try again";
die();
} else {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
}
return $data;
}
如果用户输入空格字符,为什么此函数返回true?
答案 0 :(得分:2)
包含" "
的字符串与空字符串不同。它的长度为4(4个空格)。它也与空字符串""
不同,因为它有4个字符。如果要检查字符串是空还是只有空格,请尝试:
(参见文档:http://us.php.net/manual/en/function.ctype-space.php)
if (strlen($data) == 0 || ctype_space($data)) {
//this is empty or all whitespace
}
祝你好运!
答案 1 :(得分:0)
它与PHP和false
y值
$x = ''; // empty string is false
VS
$x = ' ';
空格是一个字符,这意味着字符串不是空的,因此不是假的。您可以使用
解决此问题trim($x); // removes the space so we have an empty string
答案 2 :(得分:0)
在所有三张支票中,都会有一个空格。
$string = ' ';
strlen($string) // == 1
empty($string) // == false
$string == '' // == false
在检查之前你应该做什么trim
你的字符串,因为这会删除多余的空白
trim($string);
if (strlen($data) == 0 || empty($data) || $data == "") {