- substr: documentation ( source)
- preg_match: documentation ( source)
- str_split: documentation ( source)
<?php
function check($str){
if(preg_match('#^869\d{11}$#', $str)) {
$arr = str_split(substr($str, 0,13));
$even = $odd = $num = 0;
foreach ($arr as $key => $value) {
if($key % 2 == 0) {
$even += $value;
} else {
$odd += $value;
}
}
$even *= 3;
$num = $even + $odd;
$num = strval($num);
$res = $num{strlen($num) -1};
if($res == 0 && $str[13] == 0) {
return '匹配成功';
} else if ($str[13] == (10 - $res)) {
return '匹配成功';
} else{
return '匹配失败';
}
} else{
return '匹配失败';
}
}
echo check('86912345543213');