- <?php
- /**
- *身份证15位转18位
- *$str 15位号码
- */
- function id_card_15to18($str){
- if (!preg_match("/^[1-9]d{14}$/", $str)) return false;
- $str = substr($str, 0, 6) . \'19\' . substr($str, 6);
- $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
- $ai = array(\'1\', \'0\', \'X\', \'9\', \'8\', \'7\', \'6\', \'5\', \'4\', \'3\', \'2\');
- for ($i = 0;$i < 17;$i++) $sigma += ((int) $str{$i}) * $wi[$i];
- return $str.$ai[($sigma % 11)];
- }
- /**
- *身份证校验函数
- *$str 15位或18位号码
- */
- function is_id_card($str){
- if (preg_match("/^[1-9]d{14}(d{2}[0-9X])?$/", $str)) {
- if (strlen($str) == 18) {
- $s = substr($str, 0, 17);
- $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
- $ai = array(\'1\', \'0\', \'X\', \'9\', \'8\', \'7\', \'6\', \'5\', \'4\', \'3\', \'2\');
- for ($i = 0;$i < 17;$i++) $sigma += ((int) $s{$i}) * $wi[$i];
- if ($ai[($sigma % 11)] == $str{17}) return true;
- else return false;
- }
- return true;
- }
- return false;
- }
- ?>
复制代码
|