[PHP] 身份證字號驗證 精簡版

工作需要要驗證身份證字號,不過網路上找到的版本沒辦法正確驗證

最後還是自己寫了一個 一般版精簡版

精簡版的意義就是 把 身份證字號的英文,直接轉換成 總數,接著 每個字元位置要分別乘以 1 9 8 7 6 5 4 3 2 1 1,省去了 1 & 9 就剩下 8 7 6 5 4 3 2 1 1

省去用陣列參照方式,把索引改為9進位模式, 遇到進位就變成 10 接著在 減掉 9 就是

因為 9 – 10 所以 最後一個變成負的,在放個絕對值 函數 abs 就搞定…..

就可以這樣轉換

程式碼減少很多,不過會不會資源吃的更多呢 XD

另外也有其他種寫法,不用二進位

其實也可以不用用進位法表示

或是

最後一行改為

也是可以運作

另外謝謝 吳大雄 提示,英文參照表的部分,也可以直接省去十位數,只需要餘數就可以了

我是米薩克,想了解更多可以點選  關於我