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

在PHP中,我试图根据给定的出生日期验证第二行(包含出生日期)。行的不同元素,我给出了不同的输入,因此没有必要将数字拆分

我的问题是,对于出生日期,有一个校验数字通过公式验证出生日期

如何使用PHP验证校验位


[编辑]

我已经创建了一些应该可以工作的代码。出于某种原因,它总是返回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";
}

?>


我意识到我需要的是==而不是=。然后代码按预期工作。

请不要链接维基百科或其他文章,而是将问题缩小到输入字符串是什么、预期输出应该是什么样子,以及到目前为止您得到了什么。否则,您的问题可能会被关闭。