[PHP] 檢驗各式格式 - 檢查字串 - 只能有數字 -檢查 email 格式


以下程式碼均力求符合 RFC 規範的驗證程式。
 

PHP 表單驗證

PHP - 註冊表單驗證名字是否符合格式

檢查name 字段是否包含字母和空格。

function isValidName($webgolds =''){
    return preg_match("/^[a-zA-Z]+( [a-zA-Z]+)*$/", $webgolds);
}
測試方式:
echo isValidName('te st');
 

驗證電子信箱是否正確-檢查 email 格式

使用 PHP 內建 filter_var() 函式(PHP 5 >= 5.2.0, PHP 7) 驗證信箱 e-mail 是否正確。
Validating email addresses with filter_var()

function isValidEmail($webgolds =''){
    return (filter_var($webgolds, FILTER_VALIDATE_EMAIL))? true : false;
}

注意:千萬不要再用 preg_match 方式檢查 email 。
 

判斷字串是簡體或繁體中文(UTF-8)

判斷字串是否是簡體

function isValidSimplified($str){
    $len = mb_strlen($str, 'utf-8');
    return ($len != mb_strlen(iconv('UTF-8', 'cp950//IGNORE', $str), 'cp950')) ? true : false;
}

判斷字串是否是繁體

function isValidTraditional($str){
    $len = mb_strlen($str, 'utf-8');
    // 注意是gb2312,不能使用 gbk,因為 gbk 包含 big5 內的字元
    return ($len != mb_strlen(iconv('UTF-8', 'gb2312//IGNORE', $str), 'gb2312')) ? true : false;
}



 

檢查是否為網址字串

新版:

function isValidURL($webgolds =''){
    return (filter_var($webgolds, FILTER_VALIDATE_URL))? true : false;
}
FILTER_VALIDATE_URL 還可以進階的標誌:
FILTER_FLAG_SCHEME_REQUIRED - 要求URL 是RFC 兼容URL。(比如:http://google)
FILTER_FLAG_HOST_REQUIRED - 要求URL 包含主機名(http://www.google.com)
FILTER_FLAG_PATH_REQUIRED - 要求URL 在主機名後存在路徑(比如:google.com/webgolds/)
FILTER_FLAG_QUERY_REQUIRED - 要求URL 存在查詢字符串(比如:"google.php?age=37")


舊版:

function isValidUrlOld($webgolds =''){
    return preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $webgolds);
}
測試方式:
echo isValidURL('http://blog.webgolds.com/view/510');
echo isValidURL('http://www.google.com);
 

檢查字串是否為正確 IP


function isValidIP($webgolds =''){
    return (filter_var($webgolds, FILTER_VALIDATE_IP))? true : false;
}
IP 正確格式:'127.0.0.1'


 

檢查字串是否為 MD5 格式

Check if string is an MD5 Hash

MD5(消息摘要算法)雜湊通常以文本格式為 32 位十六進制數字。
以下將檢查是否符合:
  • 它只包含字母和數字(a~z,0~9)。
  • 長度必須為等同 32 。
程式碼:

function isValidMd5($webgolds =''){
    return preg_match('/^[a-f0-9]{32}$/', strtolower($webgolds));
}
測試方式:
echo isValidMd5('5d41402abc4b2a76b9719d911017c592');

小知識:
md5 的值不區分大小寫(case-insensitive)。


 

回上一頁

相關文章:

喜歡這篇文章嗎?立即分享

Posted : / Views: 348
Last updated :2017-11-24