daily pastebin goal
31%
SHARE
TWEET

valid_citizen_id

a guest Jan 29th, 2013 6,187 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         function valid_citizen_id($personID)
  2.         {
  3.                 if (strlen($personID) != 13) {
  4.                         return false;
  5.                 }
  6.                 $rev = strrev($personID); // reverse string ขั้นที่ 0 เตรียมตัว
  7.                 $total = 0;
  8.                 for($i=1;$i<13;$i++) // ขั้นตอนที่ 1 - เอาเลข 12 หลักมา เขียนแยกหลักกันก่อน
  9.                 {
  10.                         $mul = $i +1;
  11.                         $count = $rev[$i]*$mul; // ขั้นตอนที่ 2 - เอาเลข 12 หลักนั้นมา คูณเข้ากับเลขประจำหลักของมัน
  12.                         $total = $total + $count; // ขั้นตอนที่ 3 - เอาผลคูณทั้ง 12 ตัวมา บวกกันทั้งหมด
  13.                 }
  14.                 $mod = $total % 11; //ขั้นตอนที่ 4 - เอาเลขที่ได้จากขั้นตอนที่ 3 มา mod 11 (หารเอาเศษ)
  15.                 $sub = 11 - $mod; //ขั้นตอนที่ 5 - เอา 11 ตั้ง ลบออกด้วย เลขที่ได้จากขั้นตอนที่ 4
  16.                 $check_digit = $sub % 10; //ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมาเป็น Check Digit
  17.                 if($rev[0] == $check_digit)  // ตรวจสอบ ค่าที่ได้ กับ เลขตัวสุดท้ายของ บัตรประจำตัวประชาชน
  18.                         return true; /// ถ้า ตรงกัน แสดงว่าถูก
  19.                 else
  20.                         return false; // ไม่ตรงกันแสดงว่าผิด
  21.         }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top