【发布时间】:2018-02-20 01:54:29
【问题描述】:
在 PHP 中,我试图根据给定的出生日期验证第二行(包含出生日期)。行的不同元素,我给了不同的输入,所以不用拆分数字。
我的问题确实是,对于出生日期,有一个校验位可以通过公式验证出生日期。
如何使用 PHP 验证校验位?
How the check digit works
Machine-readable passports - Wikipedia
[编辑]
我创建了一些应该可以工作的代码。出于某种原因,它总是返回 true。
<?php
//Set variables for passport number and the corresponding check digit
$passportnumber = "123456789";
$checkdigit= "7";
//Set variables for each character of the passport number
$ppnumber1 = substr($passportnumber,0,1);
$ppnumber2 = substr($passportnumber,1,1);
$ppnumber3 = substr($passportnumber,2,1);
$ppnumber4 = substr($passportnumber,3,1);
$ppnumber5 = substr($passportnumber,4,1);
$ppnumber6 = substr($passportnumber,5,1);
$ppnumber7 = substr($passportnumber,6,1);
$ppnumber8 = substr($passportnumber,7,1);
$ppnumber9 = substr($passportnumber,8,1);
//Check the passport number has been set properly
echo "Passport number is
$ppnumber1$ppnumber2$ppnumber3$ppnumber4$ppnumber5$ppnumber6$ppnumber7$ppnumber8$ppnumber9";
$formula = ($ppnumber1*7) + ($ppnumber2*3) + ($ppnumber3*1) + ($ppnumber4*7) + ($ppnumber5*3) + ($ppnumber6*1) + ($ppnumber7*7) + ($ppnumber8*3) + ($ppnumber9*1);
$checker = $formula % 10;
if ($checker = $checkdigit){
echo "True";
} else{
echo "False";
}
?>
【问题讨论】:
-
请-不要链接维基百科或其他文章-将您的问题缩小到您的输入字符串是什么、您的预期输出应该是什么样子以及您提出了什么到目前为止。否则,您的问题可能会被关闭。
标签: php regex passport.js