PHP通用檢測函數集合_php基礎

來源:互聯網
上載者:User

<? 
// 【檔案名稱】: c_check.inc 
// 【作 用】: 通用檢測函數集 
// 【作 者】: 天灰 
// 【最後修改日期】: 2001/05/11[cxx] 
// 【變數定義規則】:‘C_'=字元型,‘I_'=整型,‘N_'=數字型,‘L_'=布爾型,‘A_'=數組型 

//-------------------------------------------------- 
// ※CheckMoney($C_Money) 檢查資料是否是99999.99格式 
// ※CheckEmailAddr($C_mailaddr) 判斷是否為有效郵件地址 
// ※CheckWebAddr($C_weburl) 判斷是否為有效網址 
// ※CheckEmpty($C_char) 判斷字串是否為空白 
// ※CheckLengthBetween($C_char, $I_len1, $I_len2=100) 判斷是否為指定長度內字串 
// ※CheckUser($C_user) 判斷是否為合法使用者名稱 
// ※CheckPassword($C_passwd) 判斷是否為合法使用者密碼 
// ※CheckTelephone($C_telephone) 判斷是否為合法電話號碼 
// ※CheckValueBetween($N_var, $N_val1, $N_val2) 判斷是否是某一範圍內的合法值 
// ※CheckPost($C_post) 判斷是否為合法郵編(固定長度) 
// ※CheckExtendName($C_filename,$A_extend) 判斷上傳檔案的副檔名 
// ※CheckImageSize($ImageFileName,$LimitSize) 檢驗上傳圖片的大小 
// ※AlertExit($C_alert,$I_goback=0) 非法操作警告並退出 
// ※Alert($C_alert,$I_goback=0) 非法操作警告 
// ※ReplaceSpacialChar($C_char) 特殊字元替換函數 
// ※ExchangeMoney($N_money) 資金轉換函式 
// ※WindowLocation($C_url,$C_get="",$C_getOther="") PHP中的window.location函數 
//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckMoney($C_Money) 
// 作 用:檢查資料是否是99999.99格式 
// 參 數:$C_Money(待檢測的數字) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckMoney($C_Money) 

if (!ereg("^[0-9][.][0-9]$", $C_Money)) return false; 
return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckEmailAddr($C_mailaddr) 
// 作 用:判斷是否為有效郵件地址 
// 參 數:$C_mailaddr(待檢測的郵件地址) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckEmailAddr($C_mailaddr) 

if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$", 
$C_mailaddr)) 
//(!ereg("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$", 
$c_mailaddr)) 

return false; 

return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckWebAddr($C_weburl) 
// 作 用:判斷是否為有效網址 
// 參 數:$C_weburl(待檢測的網址) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckWebAddr($C_weburl) 

if (!ereg("^http://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$", $C_weburl)) 

return false; 

return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckEmpty($C_char) 
// 作 用:判斷字串是否為空白 
// 參 數:$C_char(待檢測的字串) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckEmptyString($C_char) 

if (!is_string($C_char)) return false; //是否是字串類型 
if (empty($C_char)) return false; //是否已設定 
if ($C_char=='') return false; //是否為空白 
return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckLengthBetween($C_char, $I_len1, $I_len2=100) 
// 作 用:判斷是否為指定長度內字串 
// 參 數:$C_char(待檢測的字串) 
// $I_len1 (目標字串長度的下限) 
// $I_len2 (目標字串長度的上限) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckLengthBetween($C_cahr, $I_len1, $I_len2=100) 

$C_cahr = trim($C_cahr); 
if (strlen($C_cahr) < $I_len1) return false; 
if (strlen($C_cahr) > $I_len2) return false; 
return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckUser($C_user) 
// 作 用:判斷是否為合法使用者名稱 
// 參 數:$C_user(待檢測的使用者名稱) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckUser($C_user) 

if (!CheckLengthBetween($C_user, 4, 20)) return false; //寬度檢驗 
if (!ereg("^[_a-zA-Z0-9]*$", $C_user)) return false; //特殊字元檢驗 
return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckPassword($C_passwd) 
// 作 用:判斷是否為合法使用者密碼 
// 參 數:$C_passwd(待檢測的密碼) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckPassword($C_passwd) 

if (!CheckLengthBetween($C_passwd, 4, 20)) return false; //寬度檢測 
if (!ereg("^[_a-zA-Z0-9]*$", $C_passwd)) return false; //特殊字元檢測 
return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckTelephone($C_telephone) 
// 作 用:判斷是否為合法電話號碼 
// 參 數:$C_telephone(待檢測的電話號碼) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckTelephone($C_telephone) 

if (!ereg("^[+]?[0-9]+([xX-][0-9]+)*$", $C_telephone)) return false; 
return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckValueBetween($N_var, $N_val1, $N_val2) 
// 作 用:判斷是否是某一範圍內的合法值 
// 參 數:$N_var 待檢測的值 
// $N_var1 待檢測值的上限 
// $N_var2 待檢測值的下限 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckValueBetween($N_var, $N_val1, $N_val2) 

if ($N_var < $N_var1 ││ $N_var > $N_var2) 

return false; 

return true; 


//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckPost($C_post) 
// 作 用:判斷是否為合法郵編(固定長度) 
// 參 數:$C_post(待check的郵遞區號) 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckPost($C_post) 

$C_post=trim($C_post); 
if (strlen($C_post) == 6) 

if(!ereg("^[+]?[_0-9]*$",$C_post)) 

return true;; 
}else 

return false; 

}else 

return false;; 


//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckExtendName($C_filename,$A_extend) 
// 作 用:上傳檔案的副檔名判斷 
// 參 數:$C_filename 上傳的檔案名稱 
// $A_extend 要求的副檔名 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckExtendName($C_filename,$A_extend) 

if(strlen(trim($C_filename)) < 5) 

return 0; //返回0表示沒上傳圖片 

$lastdot = strrpos($C_filename, "."); //取出.最後出現的位置 
$extended = substr($C_filename, $lastdot+1); //取出副檔名 

for($i=0;$i<count($A_extend);$i++) //進行檢測 

if (trim(strtolower($extended)) == trim(strtolower($A_extend[$i]))) //轉換大 
小寫並檢測 

$flag=1; //加成功標誌 
$i=count($A_extend); //檢測到了便停止檢測 



if($flag<>1) 

for($j=0;$j<count($A_extend);$j++) //列出允許上傳的副檔名種類 

$alarm .= $A_extend[$j]." "; 

AlertExit('只能上傳'.$alarm.'檔案!而你上傳的是'.$extended.'類型的檔案'); 
return -1; //返回-1表示上傳圖片的類型不符 


return 1; //返回1表示圖片的類型符合要求 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:CheckImageSize($ImageFileName,$LimitSize) 
// 作 用:檢驗上傳圖片的大小 
// 參 數:$ImageFileName 上傳的圖片名 
// $LimitSize 要求的尺寸 
// 傳回值:布爾值 
// 備 註:無 
//-------------------------------------------------- 
function CheckImageSize($ImageFileName,$LimitSize) 

$size=GetImageSize($ImageFileName); 
if ($size[0]>$LimitSize[0] || $size[1]>$LimitSize[1]) 

AlertExit('圖片尺寸過大'); 
return false; 

return true; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:Alert($C_alert,$I_goback=0) 
// 作 用:非法操作警告 
// 參 數:$C_alert(提示的錯誤資訊) 
// $I_goback(返回到那一頁) 
// 傳回值:字串 
// 備 註:無 
//-------------------------------------------------- 
function Alert($C_alert,$I_goback=0) 

if($I_goback<>0) 

echo "<script>alert('$C_alert');history.go($I_goback);</script>"; 

else 

echo "<script>alert('$C_alert');</script>"; 


//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:AlertExit($C_alert,$I_goback=0) 
// 作 用:非法操作警告 
// 參 數:$C_alert(提示的錯誤資訊) 
// $I_goback(返回到那一頁) 
// 傳回值:字串 
// 備 註:無 
//-------------------------------------------------- 
function AlertExit($C_alert,$I_goback=0) 

if($I_goback<>0) 

echo "<script>alert('$C_alert');history.go($I_goback);</script>"; 
exit; 

else 

echo "<script>alert('$C_alert');</script>"; 
exit; 


//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:ReplaceSpacialChar($C_char) 
// 作 用:特殊字元替換函數 
// 參 數:$C_char(待替換的字串) 
// 傳回值:字串 
// 備 註:無 
//-------------------------------------------------- 
function ReplaceSpecialChar($C_char) 

$C_char=HTMLSpecialChars($C_char); //將特殊字元轉成 HTML 格式。 
$C_char=nl2br($C_char); //將斷行符號替換為<br> 
$C_char=str_replace(" "," ",$C_char); //替換空格替換為 
$C_char=str_replace("<? ","< ?",$C_char); //替換PHP標記 
return $C_char; 

//-------------------------------------------------- 

//-------------------------------------------------- 
// 函數名:ExchangeMoney($N_money) 
// 作 用:資金轉換函式 
// 參 數:$N_money(待轉換的金額數字) 
// 傳回值:字串 
// 備 註:本函數樣本:$char=ExchangeMoney(5645132.3155) ==> $char='¥5,645,132.31' 
//-------------------------------------------------- 
function ExchangeMoney($N_money) 

$A_tmp=explode(".",$N_money ); //將數字按小數點分成兩部分,並存入數組$A_tmp 
$I_len=strlen($A_tmp[0]); //測出小數點前面位元的寬度 

if($I_len%3==0) 

$I_step=$I_len/3; //如前面位元的寬度mod 3 = 0 ,可按,分成$I_step 
部分 
}else 

$step=($len-$len%3)/3+1; //如前面位元的寬度mod 3 != 0 ,可按,分成$I_step 
部分+1 


$C_cur=""; 
//對小數點以前的金額數字進行轉換 
while($I_len<>0) 

$I_step--; 

if($I_step==0) 

$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3); 
}else 

$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3).","; 


$A_tmp[0]=substr($A_tmp[0],$I_len-($I_step)*3); 
$I_len=strlen($A_tmp[0]); 


//對小數點後面的金額的進行轉換 
if($A_tmp[1]=="") 

$C_cur .= ".00"; 
}else 

$I_len=strlen($A_tmp[1]); 
if($I_len<2) 

$C_cur .= ".".$A_tmp[1]."0"; 
}else 

$C_cur .= ".".substr($A_tmp[1],0,2); 



//加上人民幣符號並傳出 
$C_cur="¥".$C_cur; 
return $C_cur; 

//-------------------------------------------------- 

//------------------------------------------------- 
// 函數名:WindowLocation($C_url,$C_get="",$C_getOther="") 
// 作 用:PHP中的window.location函數 
// 參 數:$C_url 轉向視窗的URL 
// $C_get GET方法參數 
// $C_getOther GET方法的其他參數 
// 傳回值: 字串 
// 備 註:無 
//------------------------------------------------ 
function WindowLocation($C_url,$C_get="",$C_getOther="") 

if($C_get == "" && $C_getOther == "") 
if($C_get == "" && $C_getOther <> ""){$C_target=""window.location='$C_url? 
$C_getOther='+this.value"";} 
if($C_get <> "" && $C_getOther == ""){$C_target=""window.location='$C_url? 
$C_get'"";} 
if($C_get <> "" && $C_getOther <> ""){$C_target=""window.location='$C_url? 
$C_get&$C_getOther='+this.value"";} 
return $C_target; 

//------------------------------------------------ 
?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.