Php 机器可读护照校验位
在PHP中,我试图根据给定的出生日期验证第二行(包含出生日期)。行的不同元素,我给出了不同的输入,因此没有必要将数字拆分 我的问题是,对于出生日期,有一个校验数字通过公式验证出生日期 如何使用PHP验证校验位Php 机器可读护照校验位,php,regex,passport.js,Php,Regex,Passport.js,在PHP中,我试图根据给定的出生日期验证第二行(包含出生日期)。行的不同元素,我给出了不同的输入,因此没有必要将数字拆分 我的问题是,对于出生日期,有一个校验数字通过公式验证出生日期 如何使用PHP验证校验位 [编辑] 我已经创建了一些应该可以工作的代码。出于某种原因,它总是返回true <?php //Set variables for passport number and the corresponding check digit $passportnumber = "1234
[编辑] 我已经创建了一些应该可以工作的代码。出于某种原因,它总是返回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";
}
?>
我意识到我需要的是==而不是=。然后代码按预期工作。请不要链接维基百科或其他文章,而是将问题缩小到输入字符串是什么、预期输出应该是什么样子,以及到目前为止您得到了什么。否则,您的问题可能会被关闭。