验证整数

Validate integers

我想创建一个 php 文件来回显 'valid' 或 'invalid' 到文本输入。文本是一系列由 space 分隔的四个数字,例如 2 9 15 18 .文本将根据以下约束进行验证:

  1. 该系列必须包含四个分隔的数字。
  2. 每个数字都应该在 1 到 20 之间。
  3. 任何其他偏差都应产生无效响应,例如:

0 1 3 12 = 无效 一个数字超出范围。即零。 4 11 13 26 = 无效 一个数字超出范围。即二十六。 A 1 15 18 = 无效 系列中的一封信。 5 11 18 = 无效 系列中的三个整数 2 9 10 15 18 = 无效 太多的整数是系列

我写了一段代码,你可以看看。 基本要素是 is_intintvalexplode。截至目前,它只是 return 真或假, 但是你可以根据需要打印相应的信息。

function validNumber($num) {
    return is_int($num) && $num > 0 && $num <= 20;
}

function validNumbers($string) {
    $numbers = explode(" ",$string);
    if(count($numbers) != 4) return false;
    //check for unique values
    if(count($numbers) != count(array_unique($numbers))) return false;
    foreach($numbers as $number)
        if(!validNumber(intval($number))) return false;
    return true;
}

printf("<pre>%b</pre>", validNumbers("0 1 3 12")); // false
printf("<pre>%b</pre>", validNumbers("1 3 12")); // false
printf("<pre>%b</pre>", validNumbers("A 2 3 12")); // false
printf("<pre>%b</pre>", validNumbers("5 1 3 12")); // true

以 valid/invalid 作为输出的示例:

printf("<pre>%s</pre>", validNumbers("5 1 3 12") ? "valid" : "invalid");