有誰知道IMEI驗證一個PHP函數?IMEI驗證功能
Q
IMEI驗證功能
3
A
回答
0
IMEI驗證使用Luhn檢查算法。我找到了一個頁面鏈接,您可以驗證您的IMEI。此外,本頁面的底部是一段用JavaScript編寫的代碼,用於顯示如何計算IMEI的第15位數字和有效的IMEI。我可能會給你一些想法。你可以看看這裏http://imei.sms.eu.sk/index.html
1
也許可以幫助你:
This IMEI number is something like this: ABCDEF-GH-IJKLMNO-X (without 「-」 characters)
For example: 350077523237513
In our example ABCDEF-GH-IJKLMNO-X:
AB is Reporting Body Identifier such as 35 = 「British Approvals Board of Telecommunications (BABT)」
ABCDEF is Type Approval Code
GH is Final Assembly Code
IJKLMNO is Serial Number
X is Check Digit
而且這可以幫助你:http://en.wikipedia.org/wiki/IMEI#Check_digit_computation
如果我沒有誤會,使用盧恩算法IMEI號碼。所以,你可以google一下:)或者你可以搜索IMEI算法
1
也許你的好與註釋中的IMEI驗證此: http://www.php.net/manual/en/function.ctype-digit.php#77718
但我沒有測試它
0
這裏是一個jQuery的解決方案,它可能是有用的:https://github.com/madeinstefano/imei-validator
5
簡短的解決方案
您可以使用this (witchcraft!) solution,並簡單地檢查字符串長度:
function is_luhn($n) {
$str = '';
foreach (str_split(strrev((string) $n)) as $i => $d) {
$str .= $i %2 !== 0 ? $d * 2 : $d;
}
return array_sum(str_split($str)) % 10 === 0;
}
function is_imei($n){
return is_luhn($n) && strlen($n) == 15;
}
詳細的解決方案
這是我的原始功能,解釋每一步:
function is_imei($imei){
// Should be 15 digits
if(strlen($imei) != 15 || !ctype_digit($imei))
return false;
// Get digits
$digits = str_split($imei);
// Remove last digit, and store it
$imei_last = array_pop($digits);
// Create log
$log = array();
// Loop through digits
foreach($digits as $key => $n){
// If key is odd, then count is even
if($key & 1){
// Get double digits
$double = str_split($n * 2);
// Sum double digits
$n = array_sum($double);
}
// Append log
$log[] = $n;
}
// Sum log & multiply by 9
$sum = array_sum($log) * 9;
// Compare the last digit with $imei_last
return substr($sum, -1) == $imei_last;
}
0
好開心從kasperhartwich
function validateImei($imei, $use_checksum = true) {
if (is_string($imei)) {
if (ereg('^[0-9]{15}$', $imei)) {
if (!$use_checksum) return true;
for ($i = 0, $sum = 0; $i < 14; $i++) {
$tmp = $imei[$i] * (($i%2) + 1);
$sum += ($tmp%10) + intval($tmp/10);
}
return (((10 - ($sum%10)) %10) == $imei[14]);
}
}
return false;
}
相關問題
- 1. 驗證功能
- 2. Javascript驗證功能
- 3. couchdb驗證功能
- 4. 驗證Char功能
- 5. 驗證rtsp功能
- 6. 驗證JS功能
- 7. Jquery功能驗證
- 8. XML驗證不驗證功能
- 9. 表單驗證功能加onclick功能
- 10. 用JavaScript功能驗證
- 11. jQuery驗證()特殊功能
- 12. VueJS Custom Props驗證功能
- 13. 功能測試與驗證
- 14. 按功能驗證表格
- 15. 功能不驗證輸入
- 16. javascript數字驗證功能
- 17. 功能的輸入驗證
- 18. 驗證功能問題
- 19. 驗證規則和功能
- 20. Javascript驗證多個功能?
- 21. node.js的XSD驗證功能?
- 22. Before_filter身份驗證功能
- 23. Php日期驗證功能
- 24. 驗證名稱功能
- 25. jquery驗證,一步一步驗證點擊功能
- 26. 身份驗證流程步驟順序和驗證碼功能
- 27. 驗證Ruby ActiveModel ::驗證和ActiveModel :: Errors設置功能
- 28. 如何驗證沒有驗證功能的Crypto ++的ECDSA簽名?
- 29. 驗證完成後mvc3驗證功能運行
- 30. ASP.NET和jQuery遠程驗證:驗證功能不叫
有IMEI號碼14 15和16位,也有既含數字 – 2011-01-22 15:20:18