跳过指定$ _POST的长度检查

时间:2016-02-25 05:43:37

标签: php

我正在检查每个POST的长度是否超过5。

foreach ($_POST as $val) {
    if (strlen($val) < 5) {
        $go= true;
        break;
    }
}

如何通过检查5个以上的长度来跳过一个相关POST。

基本上我需要检查所有POST的长度都在5以上,但我希望它忽略检查$_POST['Yes'];

2 个答案:

答案 0 :(得分:0)

上述答案实际上并不正确,因为您正在比较该值。 例如,它将在输入中失败:

$_POST = array('Yes'=>'a', 'SomethingElse'=>'a');

这将忽略$ _POST ['SomethingElse'],即使它不应该。

正确解决方案:

要正确找到解决方案,您还应该循环键:

foreach ($_POST as $key=>$val) {
  if ($key === 'Yes')
    continue;
  if (strlen($val) < 5) {
    $go= true;
    break;
  }
}

多个值:

如果要对多个键执行此操作,可以将它们存储在数组中:

$ignores = array('Yes',);
foreach ($_POST as $key=>$val) {
  if (in_array($key, $ignores))
    continue;
  if (strlen($val) < 5) {
    $go= true;
    break;
  }
}

答案 1 :(得分:-1)

您可以使用continue

if($val == $_POST['Yes']) continue;

这将跳过$_POST['Yes']的计数。

因此,您的代码应该是这样的:

foreach ($_POST as $val) {
    if($val == $_POST['Yes']) continue;
    if (strlen($val) < 5) {
        $go= true;
        break;
    }
}