PHP中的字符串空格字符?

时间:2015-09-07 23:04:31

标签: php string whitespace

我有一个函数在插入数据库之前检查用户输入。它是这样的:

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?

3 个答案:

答案 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 == "") {