> 백엔드 개발 > PHP 튜토리얼 > PHP의 ID 카드 번호 도구 클래스가 Java로 변환되었습니다.

PHP의 ID 카드 번호 도구 클래스가 Java로 변환되었습니다.

WBOY
풀어 주다: 2016-07-25 08:50:59
원래의
905명이 탐색했습니다.
15자리에서 18자리 ID 번호로 변환을 실현하고 중국 본토 주민 ID 카드, 홍콩 주민 ID 카드, 마카오 ID 카드 및 대만 ID 카드를 확인하세요.
  1. /**
  2. * 신분증 도구 강좌
  3. *
  4. * @author Tongle Xu 2013-6-6
  5. * @copyright Copyright (c) 2003-2103tintsoft.com
  6. * @license http://www.tintsoft.com
  7. * @version $Id$
  8. */
  9. class Utils_Idcard {
  10. /**
  11. * 중국 주민등록번호의 최소 길이입니다.
  12. */
  13. const CHINA_ID_MIN_LENGTH = 15;
  14. /**
  15. * 중국 주민등록번호의 최대 길이입니다.
  16. */
  17. const CHINA_ID_MAX_LENGTH = 18;
  18. /**
  19. * 最低年限
  20. */
  21. const MIN = 1930;
  22. /
  23. 🎜> public static $cityCode = array ("11","12","13","14","15","21","22","23","31","32"," 33","34","35","36","37","41","42","43","44","45","46","50","51" 、「52」、「53」、「54」、「61」、「62」、「63」、「64」、「65」、「71」、「81」、「82」、「91」);
  24. /**
  25. * 省、直轄市代碼表
  26. */
  27. public static $power = array (7,9,10,5,8,4,2,1,6,3,7,9,10, 5,8,4,2 );
  28. /**
  29. * 每位加權因子
  30. */
  31. public static $verifyCode = array ("1","0","X","9"," 8","7","6","5","4","3","2" );
  32. /**
  33. * 第18位校檢碼
  34. */
  35. public static $cityCodes = array (' 11' => '北京' );
  36. /**
  37. * 國內身分證校驗
  38. */
  39. public static function conver15CardTo18($idCard) {
  40. $idCard18 = "";
  41. if ( strlenstrlen ( $idCard ) != self::CHINA_ID_MIN_LENGTH) {
  42. return null;
  43. }
  44. if (self::isNum ( $idCard )) {
  45. // 取得出生年月日
  46. $sYear = '19' 。轉換字元備份
  47. $iArr = str_split ( $idCard18 );
  48. if ($iArr != null) {
  49. $iSum17 = self::getPowerSum ( $iArr );
  50. // 取得校驗取得位元
  51. $sVal = self::getCheckCode18 ( $iSum17 );
  52. if (strlen ( $sVal ) > 0) {
  53. $idCard18 . = $sVal;
  54. } else {
  55. 回傳 null;
  56. }
  57. }
  58. } else {
  59. 回傳 null;
  60. }
  61. 回傳 $idCard18; }
  62. /**
  63. * 將15位元身分證號碼轉換為18位元
  64. *
  65. * @param idCard 15位元身分編碼
  66. * @return 18位元身分編碼
  67. */
  68. public static function validateCard($idCard) {
  69. $card = trim ( $idCard );
  70. if (self::valid $ald )) {
  71. 回傳true; }
  72. if (self::validateIdCard15 ( $card )) {
  73. 回傳true;
  74. }
  75. 回傳false;
  76. }
  77. /**
  78. * 驗證身分證是否合法
  79. */
  80. public static function validateIdCard18($idCard) {
  81. $bTrue = false;
  82. if (strlen ( $idCard. {
  83. // 前17 位元
  84. $code17 = substr ( $idCard, 0, 17 );
  85. // 第18 位元
  86. $code18 = substr ( $idCard, 17, 1 );
  87. if (self::isNum ( $code17 )) {
  88. $iArr = str_split ( $code17 );
  89. if ($iArr != null) {
  90. $iSum17 = self::getPowerSum ( $self iArr );
  91. // 取得校驗位
  92. $val = self::getCheckCode18 ( $iSum17 );
  93. if (strlen ( $val ) > 0 && $val == $code18) {
  94. $bTrue = true;
  95. }
  96. }
  97. }
  98. }
  99. return $bTrue;
  100. }
  101. /**
  102. * 驗證18位元身分編碼是否合法
  103. *
  104. * @param int $idCard 身分編碼
  105. * @return boolean 是否合法
  106. */
  107. public static function validateIdCard15($idCard) {
  108. if (strlen ( $idCard ) != self::CHINA_ID_MIN_LENGTH) {
  109. return false;
  110. }
  111. 🎜> return false;
  112. } $proCode = substr ( $idCard, 0, 2 );
  113. if (! isset ( self::$cityCodes [$proCode] )) {
  114. return false;
  115. }
  116. //升到18位元
  117. $idCard = self::conver15CardTo18($idCard); return self::validateIdCard18($idCard);
  118. } else {
  119. 回傳false;
  120. }
  121. 回傳true;
  122. }
  123. /** 公用靜態函數getAgeByIdCard($idCard) {
  124. $iAge = 0;
  125. if (strlen ( $idCard ) == self::CHINA_ID_MIN_LENGTH) {
  126. $idCard = ::CHINA_ID_MIN_LENGTH) {
  127. $idCard = 15 $idCard );
  128. }
  129. $year = substr ( $idCard, 6, 4 );
  130. $iCurrYear = 日期( 'Y', time () );
  131. $iAge = $iCurrYear - $year;
  132. return $iAge;
  133. }
  134. /**
  135. * 驗證15位元身分編碼是否合法
  136. *
  137. * @param string $idCard 身分編碼
  138. * @return boolean 是否合法
  139. */
  140. public static function getDateByIdCard($idCard) {
  141. $len = strlen ($idCard) );
  142. if ($len
  143. self::CHINA_ID_MIN_LENGTH) {
  144. return null;
  145. } else if ($len == CHINA_ID_MIN_LENGTH) { $idCard = == CHINA_ID_MIN_LENGTH) { }
  146. return substr ( $idCard, 12, 2 );
  147. }
  148. /**
  149. * ID 번호를 기준으로 성별 가져오기
  150. *
  151. * @param string $idCard ID 번호
  152. * @return 성별(M-남성, F-여성, N-알 수 없음)
  153. */
  154. 공개 정적 함수 getGenderByIdCard($idCard) {
  155. $sGender = "N";
  156. if (strlen ( $idCard ) == self: :CHINA_ID_MIN_LENGTH) {
  157. $idCard = self::conver15CardTo18 ( $idCard );
  158. }
  159. $sCardNum = substr ( $idCard, 16, 1 );
  160. if (( int ) $sCardNum % 2 != 0) {
  161. $sGender = "M";
  162. } else {
  163. $sGender = "F";
  164. }
  165. return $sGender;
  166. }
  167. /**
  168. * 주민등록번호를 기준으로 호적도 구하기
  169. *
  170. * @param string $idCard 주민등록번호
  171. * @return string
  172. */
  173. 공개 정적 함수 getProvinceByIdCard($idCard) {
  174. $len = strlen( $idCard );
  175. $sProvince = null;
  176. $sProvinNum = " ";
  177. if ($len == self::CHINA_ID_MIN_LENGTH || $len == self::CHINA_ID_MAX_LENGTH) {
  178. $sProvinNum = substr ( $idCard, 0, 2 );
  179. }
  180. $sProvince = self::$cityCodes [$sProvinNum];
  181. return $sProvince;
  182. }
  183. /**
  184. * 숫자 검증
  185. *
  186. * @param int $val
  187. */
  188. 공개 정적 함수 isNum($val) {
  189. $val == null || $val == "" ? 거짓: 0 < preg_match ( '/^[0-9]*$/', $val );
  190. }
  191. /**
  192. * 날짜가 현재 날짜보다 작을 경우 유효한지 확인
  193. *
  194. * @param int $iYear 확인할 날짜(연도)
  195. * @param int $iMonth 확인할 날짜 확인(1~12월)
  196. * @param int $iDate 확인 날짜(일)
  197. * @return 유효한지 여부
  198. */
  199. 공개 정적 함수 valiDate($iYear, $iMonth , $iDate) {
  200. $연도 = 날짜 ( 'Y', 시간 () );
  201. if ($iYear < self::MIN || $iYear >= $year) {
  202. return false;
  203. }
  204. if ($iMonth < 1 || $iMonth > 12) {
  205. return false;
  206. }
  207. 스위치($iMonth) {
  208. 사례 4:
  209. 사례 6 :
  210. 사례 9 :
  211. 사례 11 :
  212. $datePerMonth = 30;
  213. break;
  214. 사례 2 :
  215. $dm = (($iYear % 4 = = 0 && $iYear % 100 != 0) || ($iYear % 400 == 0)) && ($iYear > self::MIN && $iYear < $year);
  216. $datePerMonth = $dm ? 29 : 28;
  217. 휴식;
  218. 기본값 :
  219. $datePerMonth = 31;
  220. }
  221. return ($iDate >= 1) && ($iDate <= $datePerMonth);
  222. }
  223. /**
  224. * ID 카드의 각 비트에 해당 비트의 가중치를 곱한 후 합산 값을 구합니다.
  225. *
  226. * @param array $iArr
  227. * @return ID 코드.
  228. */
  229. 개인 정적 함수 getPowerSum($iArr) {
  230. $iSum = 0;
  231. $power_len = count ( self::$power );
  232. $iarr_len = 개수 ( $iArr );
  233. if ($power_len == $iar_len) {
  234. for($i = 0; $i < $iarr_len; $i ) {
  235. for($j = 0; $j if ($i == $j) {
  236. $iSum = $iSum $iArr [$i] * self:: $power [$j];
  237. }
  238. }
  239. }
  240. }
  241. return $iSum;
  242. }
  243. /**
  244. * 검사 코드 판단을 위해 11의 거듭제곱 합계 값을 취하여 나머지를 구합니다
  245. *
  246. * @param int $iSum
  247. * @return 검사 숫자
  248. */
  249. 개인 정적 함수 getCheckCode18($iSum) {
  250. $sCode = "";
  251. 스위치($iSum % 11) {
  252. 사례 10 :
  253. $sCode = "2";
  254. break ;
  255. 사례 9 :
  256. $sCode = "3";
  257. 중단;
  258. 사례 8 :
  259. $sCode = "4";
  260. 중단;
  261. 사례 7:
  262. $sCode = "5";
  263. 중단;
  264. 사례 6 :
  265. $sCode = "6";
  266. 중단;
  267. 사례 5:
  268. $sCode = "7" ;
  269. 중단;
  270. 사례 4 :
  271. $sCode = "8";
  272. 중단;
  273. 사례 3 :
  274. $sCode = "9";
  275. 중단;
  276. 사례 2 :
  277. $sCode = "x";
  278. 중단;
  279. 사례 1 :
  280. $sCode = "0";
  281. 중단;
  282. 사례 0 :
  283. $ sCode = "1";
  284. break;
  285. }
  286. return $sCode;
  287. }
  288. }
复system代码
  1. /**
  2. * 신분증 도구 강좌
  3. *
  4. * @author Tongle Xu 2013-6-6
  5. * @copyright Copyright (c) 2003-2103tintsoft.com
  6. * @license http://www.tintsoft.com
  7. * @version $Id$
  8. */
  9. class Utils_Idcard {
  10. /**
  11. * 중국 주민등록번호의 최소 길이입니다.
  12. */
  13. const CHINA_ID_MIN_LENGTH = 15;
  14. /**
  15. * 중국 주민등록번호의 최대 길이입니다.
  16. */
  17. const CHINA_ID_MAX_LENGTH = 18;
  18. /**
  19. * 최소 연도
  20. */
  21. const MIN = 1930;
  22. /**
  23. *지방 및 자치단체 코드표
  24. */
  25. public static $cityCode = 배열 ​​("11","12","13","14","15","21","22","23","31","32"," 33","34","35","36","37","41","42","43","44","45","46","50","51" ,"52","53","54","61","62","63","64","65","71","81","82","91" );
  26. /**
  27. * 비트별 가중치 인자
  28. */
  29. public static $power = 배열 ​​(7,9,10,5,8,4,2,1,6,3,7,9,10, 5,8,4,2 );
  30. /**
  31. * 18자리 체크코드
  32. */
  33. public static $verifyCode = 배열 ​​("1","0","X","9"," 8","7","6","5","4","3","2" );
  34. /**
  35. * 국내 신분증 확인
  36. */
  37. public static $cityCodes = array (' 11' => '베이징','12' => '천진','14' => '산시','15' => '내몽골', ' 21' => '랴오닝','22' => '지린','31' => '상하이','32' => ' 33' => '절강','34' => '안후이','36' => '장시','37' => ' 41' => '허난','42' => '후베이','44' => '광둥','45' =>
  38. '46' => '하이난','51' => '사천','52' => 운남','54' => '티베트','61' => '산시','62' => '내몽고','21' => '랴오닝','22' => '지린','23' => '헤이룽장','31' => '장쑤성','33' => '절강','34' => '안휘','36' => '장시','37' => '허난성','42' => '후베이성','43' => '후난성',
  39. '44' => '광둥성','45' => '광시성','46' => '하이난','50' => '사천','52' => '운남','54' => '티베트','61' => '산시','63' => '칭하이','65' => '신장','71' => '홍콩','82' => '해외','63 ' => '칭하이','64' => '닝샤','65' => '대만','81' => '홍콩' 🎜> '82' => '마카오','91' => '외국' );
  40. /**
  41. * 대만 신분증 인증
  42. *
  43. * @var array
  44. */
  45. public static $twFirstCode = array ('A ' => 10,'B' => 12,'D' => 14,'F' => > 16,'H' => 17,'K' => 19,'M' => 21; 22,'P' => 23,'R' => 26,'T' => 28, 'V' => 29,'X' => 31,'W' => 33,'I' => ' => 35 );
  46. /**
  47. * 홍콩 신분증 확인
  48. */
  49. public static $hkFirstCode = array ('A' => 1,'B' => 2,'C' => 3, 'R' => 18,'Z' => 26,'W' => ; 15,'N ' => 14 );
  50. /**
  51. * 15자리 ID번호를 18자리로 변환
  52. *
  53. * @param idCard 15자리 식별코드
  54. * @return 18자리 식별코드
  55. */
  56. 공개 정적 함수 conver15CardTo18($idCard) {
  57. $idCard18 = "";
  58. if (strlen ( $ idCard ) != self::CHINA_ID_MIN_LENGTH) {
  59. return null;
  60. }
  61. if (self::isNum ( $idCard )) {
  62. // 태어난 연도, 월 가져오기 그리고 day
  63. $sYear = '19' . substr ( $idCard, 6, 2 );
  64. $idCard18 = substr ( $idCard, 0, 6 ) . substr ( $idCard, 8 );
  65. // 문자 배열 변환
  66. $iArr = str_split ( $idCard18 );
  67. if ($iArr != null) {
  68. $iSum17 = self::getPowerSum ( $iArr );
  69. / / 검사 숫자 가져오기
  70. $sVal = self::getCheckCode18 ( $iSum17 );
  71. if (strlen ( $sVal ) > 0) {
  72. $idCard18 .= $sVal;
  73. } else {
  74. return null;
  75. }
  76. }
  77. } else {
  78. return null;
  79. }
  80. return $idCard18;
  81. }
  82. /**
  83. * 신분증이 유효한지 확인하세요
  84. */
  85. 공개 정적 함수 verifyCard($idCard) {
  86. $card = Trim ( $idCard );
  87. if (self::validateIdCard18 ( $card )) {
  88. return true;
  89. }
  90. if (self::validateIdCard15 ( $card )) {
  91. return true;
  92. }
  93. $cardval = self::validateIdCard10 ( $card );
  94. if ($ Cardval != null) {
  95. if ($cardval [2] == "true") {
  96. return true;
  97. }
  98. }
  99. return false;
  100. }
  101. /**
  102. * 18자리 식별 ​​코드가 유효한지 확인
  103. *
  104. * @param int $idCard 식별 코드
  105. * @return boolean 합법 여부
  106. */
  107. 공개 정적 함수 verifyIdCard18($idCard) {
  108. $bTrue = false;
  109. if (strlen ( $idCard ) == self::CHINA_ID_MAX_LENGTH ) {
  110. // 전17位
  111. $code17 = substr ( $idCard, 0, 17 );
  112. // 第18位
  113. $code18 = substr ( $idCard, 17, 1 );
  114. if (self::isNum ( $code17 )) {
  115. $iArr = str_split ( $code17 );
  116. if ($iArr != null) {
  117. $iSum17 = self::getPowerSum ( $iArr );
  118. // 获取校验位
  119. $val = self::getCheckCode18 ( $iSum17 );
  120. if (strlen ( $val ) > 0 && $val == $code18) {
  121. $bTrue = true;
  122. }
  123. }
  124. }
  125. }
  126. return $bTrue;
  127. }
  128. /**
  129. * 15자리 식별 ​​코드가 적법한지 확인
  130. *
  131. * @param string $idCard 식별 코드
  132. * @return boolean 적법 여부
  133. */
  134. 공개 정적 함수 verifyIdCard15($idCard) {
  135. if (strlen ( $idCard ) != self::CHINA_ID_MIN_LENGTH) {
  136. return false;
  137. }
  138. if (self::isNum ( $ idCard )) {
  139. $proCode = substr ( $idCard, 0, 2 );
  140. if (! isset ( self::$cityCodes [$proCode] )) {
  141. return false;
  142. }
  143. // 升到18位
  144. $idCard = self::conver15CardTo18 ( $idCard );
  145. return self::validateIdCard18 ( $idCard );
  146. } else {
  147. return false;
  148. }
  149. return true;
  150. }
  151. /**
  152. * 10자리 식별 ​​코드가 유효한지 확인
  153. *
  154. * @param idCard 식별 코드
  155. * @return ID 카드 정보 배열

  156. * [0] - 대만, 마카오, 홍콩 [1] - 성별(남성 M, 여성 F, 알 수 없음 N) [2] - 적법한가(법적 참, 불법 거짓)
  157. * 주민등록번호가 아닐 경우 null을 반환
  158. *
  159. */
  160. public static function verifyIdCard10($idCard) {
  161. $info = array ();
  162. $card = str_replace ( "[\(|\)]", "", $card );
  163. $len = strlen ( $card );
  164. if ($len != 8 && $len ! = 9 && $len != 10) {
  165. return null;
  166. }
  167. if (0 < preg_match ( "/^[a-zA-Z][0-9]{9}$/", $idCard )) { // 台湾
  168. $info [0] = "台湾";
  169. $char2 = substr ( $idCard, 1, 1 );
  170. if ($char2 == "1") {
  171. $info [1] = "M";
  172. } else if ($char2 == " 2") {
  173. $info [1] = "F";
  174. } else {
  175. $info [1] = "N";
  176. $info [2] = "false";
  177. return $info;
  178. }
  179. $info [2] = self::validateTWCard ( $idCard ) ? "true" : "false";
  180. } else if (0 < preg_match ( "/^[1|5|7][0-9]{6}\(?[0-9A-Z]\) ?$/", $idCard )) { // 澳门
  181. $info [0] = "澳门";
  182. $info [1] = "N";
  183. // TODO
  184. } else if (0 < preg_match ( "/^[A-Z]{1,2}[0-9]{6}\(?[0-9A]\)?$/", $idCard )) { // 향港
  185. $info [0] = "향港";
  186. $info [1] = "N";
  187. $info [2] = self::validateHKCard ( $idCard ) ? "true" : "false";
  188. } else {
  189. null 반환;
  190. }
  191. 정보 반환;
  192. }
  193. /**
  194. * 대만 신분증 번호 확인
  195. *
  196. * @param string idCard 신분증 번호
  197. * @return 확인 코드가 일치합니다
  198. */
  199. 공개 정적 함수 verifyTWCard($idCard) {
  200. $start = substr( $idCard, 0, 1 );
  201. $mid = substr( $idCard, 1, 8 );
  202. $end = substr( $idCard, 9, 1 );
  203. $iStart = self::$twFirstCode ['start'];
  204. $sum = $iStart / 10 ($iStart % 10) * 9;
  205. $chars = str_split ( $mid );
  206. $iflag = 8;
  207. foreach ( $chars as $c ) {
  208. $sum = $sum $c "" * $iflag;
  209. $iflag --;
  210. }
  211. return ($sum % 10 == 0 ? 0 : (10 - $sum % 10)) == $end ? true : false;
  212. }
  213. /**
  214. * 홍콩 신분증 번호 확인(버그 있음, 일부 특수 신분증은 확인 불가)
  215. *

  216. * 신분증 앞 2자리는 영문이면 됩니다. 첫 번째 숫자는 공백이며 숫자 58에 해당합니다. 처음 두 개의 영어 문자 A-Z는 숫자 10-35에 해당합니다
  217. * 체크 코드의 마지막 숫자는 0-9에 해당 숫자를 더한 것입니다. 문자 "A", "A"는 10을 나타냅니다.
  218. *

  219. *

  220. * 모든 ID 번호를 숫자로 변환합니다. 이 숫자는 9-1을 곱한 값의 합에 해당합니다. 11로 나누면 유효한 ID번호
  221. *

  222. *
  223. * @param idCard ID번호
  224. * @return 인증번호가 일치합니다
  225. */
  226. 공개 정적 함수 verifyHKCard($idCard) {
  227. $card = str_replace ( "[\(|\)] ", "", $card );
  228. $sum = 0;
  229. if (strlen ( $card ) == 9) {
  230. $card0_arr = str_split ( strtoupper ( substr ( $card, 0, 1 ) ) );
  231. $card1_arr = str_split ( strtoupper ( substr ( $card, 1, 1 ) ) );
  232. $sum = ($card0_arr [0] - 55) * 9 . ($card1_arr [0] - 55) * 8;
  233. $card = substr ( $card, 1, 8 );
  234. } else {
  235. $card0_arr = str_split ( strtoupper ( substr ( $card, 0) , 1 ) ) );
  236. $sum = 522 ($card0_arr [0] - 55) * 8;
  237. }
  238. $mid = substr ( $card, 1, 6 );
  239. $end = substr ( $card, 7, 1 );
  240. $chars = str_split ( $mid );
  241. $iflag = 7;
  242. foreach ( $chars as $c ) {
  243. $sum = $sum $c "" * $iflag;
  244. $iflag --;
  245. }
  246. if (strtoupper ( $ end ) == "A") {
  247. $sum = $sum 10;
  248. } else {
  249. $sum = $sum $end;
  250. }
  251. return ($sum % 11 = = 0) ? true : false;
  252. }
  253. /**
  254. * 依照身分編號取得年齡
  255. *
  256. * @param string idCard 身分編號
  257. * @return 年齡
  258. */
  259. public static function getAgeByIdCard($idCard) {
  260. $iAge = 0;
  261. > if ( $idCard = self::conver15CardTo18 ( $idCard );
  262. }
  263. $year = substr ( $idCard, 6, 4 ); = date ( 'Y', time () );
  264. $iAge = $iCurrYear - $year;
  265. return $iAge;
  266. }
  267. /**
  268. * 依照身分編號取得生日天
  269. *
  270. * @param string $idCard 身分編號
  271. * @return NULL string
  272. */
  273. public static function getDateByIdCard($idCard) {
  274. $len = strlen ( $idCard );
  275. if ($len return null $len == CHINA_ID_MIN_LENGTH) {
  276. $idCard = self::conver15CardTo18 ( $idCard );
  277. }
  278. return substr ( $idCard, 12, 2 );
  279. return substr ( $idCard, 12, 2 );
  280. }
  281. /**
  282. * 依照身分編號取得性別
  283. *
  284. * @param string $idCard 身分編號
  285. * @return 性別(M-男,F-女,N-未知)
  286. */
  287. public static function getGenderByIdCard($idCard) {
  288. $sGender = "N";
  289. if (strlen ( $idCard ) == self::CHI_ID_MIN_LTH_ID > $idCard = self::conver15CardTo18 ( $idCard );
  290. }
  291. $sCardNum = substr ( $idCard, 16, 1 );
  292. if (( int ) $sCardNum % 2 !
  293. if (( int ) $sCardNum % 2 !
  294. $sGender = "M";
  295. } else {
  296. $sGender = "F";
  297. }
  298. return $sGender;
  299. }
  300. /* *
  301. * 依身分編號取得戶籍省份
  302. *
  303. * @param string $idCard 身分編號
  304. * @return string
  305. */
  306. public static function getProvinceByIdCard($idCard) {
  307. $len = strlen ( $idCard );
  308. $sProvince = null;
  309. $sProvinNum"; ($len == self::CHINA_ID_MIN_LENGTH || $len == self::CHINA_ID_MAX_LENGTH) {
  310. $sProvinNum = substr ( $idCard, 0, 2 );
  311. }
  312. $sProvince = self::$cityCodes [$sProvinNum]; $sProvince;
  313. }
  314. /**
  315. * 數位驗證
  316. *
  317. * @param int $val
  318. */
  319. public static function isNum($val) {
  320. return $val == null || $val == "" ?假:0 }
  321. /**
  322. * 驗證小於目前日期是否有效
  323. *
  324. * @param int $iYear 待驗證日期(年)
  325. * @param int $iMonth 待驗證日期(月1-12)
  326. * @param int $iMonth 待驗證日期(月1-12)
  327. * @param int $iMonth 待驗證日期(月1-12)
  328. * @param int $iMonth 待驗證日期(月1-12)
  329. * * @param int $iDate 待驗證日期(日)
  330. * @return 是否有效
  331. */
  332. 公共靜態函數valiDate($iYear, $iMonth , $iDate) {
  333. $year = date ( 'Y', time () );
  334. if ($iYear = $year) {
  335. 回傳false;
  336. }
  337. if ($iMonth 12) {
  338. 回傳false;
  339. }
  340. switch (> 回傳false;
  341. }
  342. switch ($iMonth) {
  343. 情況4 :
  344. 案例6 :
  345. 案例9 :
  346. 案例11 :
  347. $datePerMonth = 30;
  348. 中斷;
  349. 案例2 :
  350. $e =d (($iYear % 4 == 0 && $iYear % 100 != 0) || ($iYear % 400 == 0)) && ($iYear > self::MIN && $iYear $datePerMonth = $dm ? $datePerMonth);
  351. }
  352. /**
  353. * 將身分證的香水和濃度因子相乘之後,再得到和值
  354. *
  355. * @param array $iArr
  356. * @return 身分證編碼。
  357. */
  358. 개인 정적 함수 getPowerSum($iArr) {
  359. $iSum = 0;
  360. $power_len = count ( self::$power );
  361. $iarr_len = count ( $iArr );
  362. if ($power_len == $iar_len) {
  363. for($i = 0; $i < $iarr_len; $i ) {
  364. for($j = 0; $j < $power_len; $j ) {
  365. if ($i == $j) {
  366. $iSum = $iSum $iArr [$i] * self::$power [$j];
  367. }
  368. }
  369. }
  370. }
  371. return $iSum;
  372. }
  373. /**
  374. * 검사 코드 판단을 위해 11의 거듭제곱 합계 값을 취하여 나머지를 구합니다
  375. *
  376. * @param int $iSum
  377. * @return 검사 숫자
  378. */
  379. 비공개 정적 함수 getCheckCode18($iSum) {
  380. $sCode = "";
  381. 스위치 ($iSum % 11) {
  382. 사례 10 :
  383. $sCode = "2";
  384. 중단;
  385. 사례 9 :
  386. $sCode = "3";
  387. 중단;
  388. 사례 8 :
  389. $sCode = "4";
  390. 중단;
  391. 사례 7:
  392. $sCode = "5";
  393. break;
  394. 사례 6 :
  395. $sCode = "6";
  396. break;
  397. 사례 5 :
  398. $sCode = "7";
  399. break;
  400. 사례 4:
  401. $sCode = "8";
  402. 중단;
  403. 사례 3 :
  404. $sCode = "9";
  405. 중단;
  406. 사례 2:
  407. $sCode = "x ";
  408. 중단;
  409. 사례 1 :
  410. $sCode = "0";
  411. 중단;
  412. 사례 0 :
  413. $sCode = "1";
  414. 중단;
  415. }
  416. $sCode 반환;
  417. }
  418. }
复代码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿