當前位置:首頁 » 編程語言 » php身份證號

php身份證號

發布時間: 2022-11-17 05:41:17

php execl文檔中 身份證號碼導入到資料庫後顯示4.2001e454e55E+17

目測是你的資料庫的欄位類型設置的不對

❷ 求助,關於輸入身份證號碼獲得生日和性別的PHP函數

自定義一個函數
刪除身份證後四位
然後再取出最後八位數就是生日了

❸ PHP判斷是否是身份證號

/**
*判斷是否為合法的身份證號碼
*@param$mobile
*@returnint
*/
functionisCreditNo($vStr){
$vCity=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'
);
if(!preg_match('/^([d]{17}[xXd]|[d]{15})$/',$vStr))returnfalse;
if(!in_array(substr($vStr,0,2),$vCity))returnfalse;
$vStr=preg_replace('/[xX]$/i','a',$vStr);
$vLength=strlen($vStr);
if($vLength==18){
$vBirthday=substr($vStr,6,4).'-'.substr($vStr,10,2).'-'.substr($vStr,12,2);
}else{
$vBirthday='19'.substr($vStr,6,2).'-'.substr($vStr,8,2).'-'.substr($vStr,10,2);
}
if(date('Y-m-d',strtotime($vBirthday))!=$vBirthday)returnfalse;
if($vLength==18){
$vSum=0;
for($i=17;$i>=0;$i--){
$vSubStr=substr($vStr,17-$i,1);
$vSum+=(pow(2,$i)%11)*(($vSubStr=='a')?10:intval($vSubStr,11));
}
if($vSum%11!=1)returnfalse;
}
returntrue;
}

❹ php 身份證 正則 檢測是否有效怎麼寫

你的正則表達式的規則錯了。。當然不能執行啦
http://blog.sina.com.cn/s/blog_461c24d50100dtnz.html
這是規則。如果你只是拿來主義,就無視吧。
代碼長篇大論,是對你負責;說真的,網路沒幾個願意自己寫那麼多字的人。我第二程序是自己寫的,試驗過了。可以自動把身份證升級到18位,然後驗證。
正則表達式其實是來自數學的概念,後來加入了編程語言。正則表達式驗證身份證簡單,但是有缺點,你的要求是:驗證出身年月日,很可惜,正則沒辦法驗證的太完善。也就是說只要符合規則就是正確(比如19940939之類的出生年月。。。),所以寫程序就是為了完善它。話說多了= =不採納也沒辦法。我自認為我比樓上的好多了。

<?php
$s15="/^[0-9]{15}$/";
//15位正則表達式
$s18="/^[0-9]{6}[1]{1}[9]{1}[0-9]{2}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}[0-9]{3}[0-9X]{1}$/";
//18位正則表達式

$sid="18位或者15位身份證";

if(preg_match($s15,$sid) or preg_match($s18,$sid))
//如果滿足這兩個條件的其中一個,輸出echo
echo 'ok';
else
echo 'no';
?>
簡單不好用,我花了一個小時寫了一個15位轉18位然後自動驗證的函數:

<?php
function check($sid)
{
if(strlen($sid)== 15)
//如果是15身份證,進入自動轉換程序,把15位升級到18位
{
$wi=array('7','9','10','5','8','4','2','1','6','3','7','9','10','5','8','4','2','1');
$sid=substr_replace($sid,19,6,0);
$count=array();
for($i=0;$i<18;++$i)
{
@$count[$i]=$sid[$i]*$wi[$i];
}
$sum=array_sum($count)%11;
$zuihou=array('1','0','X','9','8','7','6','5','4','3','2');
$sid=substr_replace($sid,$zuihou[$sum],17,0);
//這個sid是18位的。= = 不信你拿自己的身份證(15位)放過來試驗,肯定沒錯。
}
$wi18=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
$sum2=array();
for($j=0;$j<17;$j++)
{
$sum2[$j]=$sid[$j]*$wi18[$j];
}
$sum2=array_sum($sum2)%11;
$yz=array('1','0','X','9','8','7','6','5','4','3','2');
if($yz[$sum2] == $sid[17])
//如果最後一位和驗證號一樣,則返回真
return true;
else
return false;
}
$sid="18位或者15位身份證";
if(check($sid))
echo '是正確的身份證';
else
echo '身份證不正確';
?>

❺ php怎樣調用前端身份證識別器數據

用vlookup函數,但你要說清楚你的表格中姓名和身份證號碼在什麼單元格才能給你寫出公式,具體是
=VLOOKUP(名字,原數據的區域,身份證號碼在數據區域的位置,0)

❻ php 身份證的正則表達式怎麼寫

$IdCard = "/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i";
提示 :正則格式: 『/正則表達式/模式修正符』;
所以 添加 i 是忽略英文字母大小寫的

❼ thinkphp根據身份證怎麼獲取所在地區

方法很多,這里舉出兩種

  1. 通過一些平台介面進行查詢,例:有道身份證查詢這個(貌似封了),可以自行網路下

  2. 自建資料庫查詢,原理:身份證號碼的前6位是用來做地區區別碼的,所以只要找到各個地區的區別碼,用正則匹配就可以知道身份證所在地區了

❽ PHP.導出excel時.身份證號碼顯示為科學計算了.代碼如下.求對A.u_shenfen的欄位如何正常導出身份證..

1、我們都有這樣的經驗,科學計數法是因為數字太大了,在數字左邊加一個單引號,你就會發現顯示完整的數字了,而不是科學計數的數字了。

2、所以,同理,我們在輸出的時候把數字改成字元串類型的就好了。

❾ thinnkphp5.0怎麼限制插入手機號或者身份證號的字元長度

strlen($string)
判斷一下長度,長了跳出,返回提示

❿ php 檢查字元串中是否存在身份證號

15位數身份證驗證正則表達式:

$sfzh=preg_match(「/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/
」,"字元串");

$sfzh=preg_match(「/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/」,"字元串");

熱點內容
谷能壓縮機 發布:2025-01-13 15:44:30 瀏覽:412
電腦電腦直連通訊ftp 發布:2025-01-13 15:38:03 瀏覽:717
nvm存儲 發布:2025-01-13 15:36:19 瀏覽:552
京東架構師緩存經驗 發布:2025-01-13 15:33:00 瀏覽:726
android圖片顏色 發布:2025-01-13 15:26:09 瀏覽:268
國家稅務總局電腦伺服器 發布:2025-01-13 15:10:24 瀏覽:596
金立老款機的開機密碼是多少 發布:2025-01-13 15:04:45 瀏覽:456
湖南網上辦稅初始密碼多少 發布:2025-01-13 15:02:49 瀏覽:417
怎麼使用筆記本連接伺服器 發布:2025-01-13 15:02:48 瀏覽:705
長城cs75plus選哪個配置 發布:2025-01-13 14:54:05 瀏覽:22