ข้อมูลจาก https://pastebin.com/5MPhhNQH
function valid_citizen_id($personID)
{
if (strlen($personID) != 13) {
return false;
}
$rev = strrev($personID); // reverse string ขั้นที่ 0 เตรียมตัว
$total = 0;
for($i=1;$i<13;$i++) // ขั้นตอนที่ 1 - เอาเลข 12 หลักมา เขียนแยกหลักกันก่อน
{
$mul = $i +1;
$count = $rev[$i]*$mul; // ขั้นตอนที่ 2 - เอาเลข 12 หลักนั้นมา คูณเข้ากับเลขประจำหลักของมัน
$total = $total + $count; // ขั้นตอนที่ 3 - เอาผลคูณทั้ง 12 ตัวมา บวกกันทั้งหมด
}
$mod = $total % 11; //ขั้นตอนที่ 4 - เอาเลขที่ได้จากขั้นตอนที่ 3 มา mod 11 (หารเอาเศษ)
$sub = 11 - $mod; //ขั้นตอนที่ 5 - เอา 11 ตั้ง ลบออกด้วย เลขที่ได้จากขั้นตอนที่ 4
$check_digit = $sub % 10; //ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมาเป็น Check Digit
if($rev[0] == $check_digit) // ตรวจสอบ ค่าที่ได้ กับ เลขตัวสุดท้ายของ บัตรประจำตัวประชาชน
return true; /// ถ้า ตรงกัน แสดงว่าถูก
else
return false; // ไม่ตรงกันแสดงว่าผิด
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น