【问题标题】:How to check the input value is not empty spaces? [duplicate]如何检查输入值是否为空格? [复制]
【发布时间】:2017-01-30 15:37:19
【问题描述】:

我在我的项目中使用 PHP,当任何表单被提交时,我需要检查输入是否不为空,所以我使用这样的东西:

if(empty($myVar)) {
    echo "Error";
} else {
    echo "success";
}

但这似乎不像我想要的那样工作,所以如果用户输入像“”这样的空格,那么引号之间只是空虚,但 PHP 仍然显示成功消息而不是错误消息。

我也使用了 isset($var),但它是一样的,不能按我的需要工作。

可能是什么问题?以及如何解决?

【问题讨论】:

  • empty(trim($myVar)) 你很好。既然我们在它的世界里,你的意思就更多了:eyesight emptiness

标签: php


【解决方案1】:

使用trim函数,去除字符串开头和结尾的空格:

if(empty(trim($myVar))) {
    echo "Error"
} else {
    echo "success";
}

【讨论】:

  • 非常感谢,你拯救了我的一天 :) 但是我有一个小问题,为什么空函数在这种状态下没有用?为什么它不把空间算作一个真正的角色?或者这个函数到底发生了什么?
  • 这是一个手册页php.net/manual/en/… 它描述了哪些值被认为是空的
  • @Maohammed Hayder 非常重要和有用的表格php.net/manual/en/types.comparisons.php
【解决方案2】:
echo empty(trim($myVar)) ? 'Error' : 'success';

【讨论】:

    【解决方案3】:

    如果您想trim$_POST 中的所有字段,请使用以下命令:

    $_POST = array_map("trim", $_POST);
    

    那你就可以通过empty()查看了。

    但这仅在您有几个字段时才有用。仅此一项,您应该直接使用empty(trim($var))

    【讨论】:

      【解决方案4】:

      我建议您在检查是否为空之前先修剪 $myVar,如下所示

      if(empty(trim($myVar))) {
          echo "Error";
      } else {
          echo "success";
      }
      

      这将删除变量 $myVar 中的所有前导或尾随空格,然后检查该变量是否为空。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-16
        • 2015-08-17
        • 1970-01-01
        • 1970-01-01
        • 2018-04-18
        • 2018-05-26
        • 2021-09-14
        • 1970-01-01
        相关资源
        最近更新 更多