php开发之常用验证方法

1.邮箱验证
function isEmail($email) {
    if (!$email) {
        return false;
    }
 
    return preg_match('/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/', $email);
}    

 

function checkEmail($email)
{
    return filter_var($email, FILTER_VALIDATE_EMAIL)  
}

 

 
2. 手机号验证
function isMobile($mobile) {
    if (!$mobile) {
        return false;
    }
 
    return preg_match('/^((\(d{2,3}\))|(\d{3}\-))?1(3|5|8|9)\d{9}$/', $mobile);
}

 

  /**
     * 验证手机号
     * 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9]
     * 移动号段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
     * 联通号段: 130,131,132,155,156,185,186,145,176,1709
     * 电信号段: 133,153,180,181,189,177,1700
     */
    function mobile($mobile)
    {
        
        if(preg_match('/^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|70)\\d{8}$/', $mobile)){
            return 1;
        }elseif(preg_match('/(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(^1705\\d{7}$)/', $mobile)){
            return 2;
        }elseif(preg_match('/(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\\d{8}$)|(^1709\\d{7}$)/', $mobile)){
            return 3;
        }elseif(preg_match('/(^1(33|53|77|8[019])\\d{8}$)|(^1700\\d{7}$)/', $mobile)){
            return 4;
        }else{
            return 0;
        }
    }

 

 
3. 邮编验证
function isPostalCode($postalCode) {
    if (!$postalCode) {
        return false;
    }
 
    return preg_match("/^[1-9]\d{5}$/", $postalCode);
}

 

 

 
4. ip验证
function isIPAddress($IPAddress) {
    if (!$IPAddress) {
        return false;
    }
 
    return preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" .
"(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $IPAddress);
}

 

 
5. 身份证验证
function isIDCard($IDCard) {
    if (!$IDCard) {
        return false;
    }
 
    return preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/', $IDCard);
}

 

 
 6.检查中文
function isCn($str){
    if(preg_match("/[\x{4e00}-\x{9fa5}]+/u", $str)) {
        return true;
    }
    return false;
}

 

 
 7.检查数字
function isNumber($str){
    if(preg_match('/^\d+$/', $str)) {
        return true;
    }
    return false;
}

 

 
8.检查是否每位相同
function isNumSame($str){
    if(preg_match('/^(\w)\1+$/', $str)) {
        return true;
    }
    return false;
}

 

 9.检查是否为空
function isEmpty($str){
    if(preg_match('/^\s*$/', $str)) {
        return true;
    }
    return false;
}

 

 
 10.检测是否为合法url
function isUrl($url){
    if(strpos('kkk' . $url, 'http')){
        return true;
    }
    return false;
}

 

 
 
11.检测一组字符是否有可能组成手机号码
function willMobile($mobile) {
    if (!$mobile) {
        return false;
    }
 
    return preg_match('/^((\(d{2,3}\))|(\d{3}\-))?1(3|5|8|9)\d{0,9}$/', $mobile);
}

 

 
12.检测是否是电话号码
function isPhoneNumber($phone) {
    if (!$phone) {
        return false;
    }

    return preg_match('/^((0\d{3}[\-])?\d{7}|(0\d{2}[\-])?\d{8})?$/', $phone);
}

 

13.检测是否是地区码
function isAreaCode($code){
    if (!$code) {
        return false;
    }
 
    return preg_match('/^(0\d{3})|(0\d{2})$/', $code);
}

 

 14.参数验证
/**
* 参数验证
* @param $para 数据
* @param $standard 参数要求
* @return boolen
*/
public static function verifyParams($para, $standard)
{
    if ($para === false || empty($para)) {
        return false;
    }
 
    foreach ($standard['REQUIRED'] as $k => $v) {
        if (!array_key_exists($k, $para)) {
            return false;
        }
        if(empty($para[$k])){
            return false;
        }
 
        if ('string' == $v) {
            if (false === is_string($para[$k])) {
                return false;
            }
        } else if ('int' == $v) {
            if ((string)((int)($para[$k])) != $para[$k]) {
                return false;
            }
        } else{
            return false;
        }
    }
 
    foreach ($standard['OPTIONAL'] as $k => $v) {
        if (!array_key_exists($k, $para)) {
            continue;
        }
 
        if ('string' == $v) {
            if (!empty($para[$k]) && false === is_string($para[$k])) {
                return false;
            }
        } else if ('int' == $v) {
            if (!empty($para[$k]) && (string)((int)($para[$k])) != $para[$k]) {
                return false;
            }
        } else {
            return false;
        }
    }
 
    return true;
}

 

15.验证用户名称

function checkUsername()
{
    return preg_match('/^[a-z\d_]{5,20}$/i', $username);  
}

 

16.验证信用卡号

function checkCardNum($cc)
{
    return preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/', $cc)
}

 

17.验证域名

function checkDns($url)
{
    return preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url);
}

 

18.过滤内容

function filterExp(&$value){
    if (preg_match_all('/^(EXP|NEQ|GT|EGT|LT|ELT|OR|XOR|LIKE|NOTLIKE|NOT BETWEEN|NOTBETWEEN|BETWEEN|NOTIN|NOT IN|IN)$/i', $value)) {
        $value .= ' ';
    }
}

 

19.是否是微信中

function is_weixin(){ 
    if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
                return true;
    }    
    return false;
    }

 

20.密码验证

function verifyPassword($password){
        // 1.排除中文
        if(preg_match("/[\x{4e00}-\x{9fa5}]+/u",$password)){
            return '含有中文字符';
        }
        // 2.过滤空白字符
        if(preg_match("/\s+/",$password)){
            return '含有空白字符';
        }
        // 3.验证密码长度    
        $length = strlen($password);
        if($length < 6 || $length > 20){
            return '密码长度不够或超出';
        }
        $banPasswords = ['123456','654321','112233'];
        // 4.简单字符排除
        if(in_array($password,$banPasswords)){
            return '密码过于简单';
        }
        $count = 1;
        // 5.是否是单一密码
        for($i = 1 ; $i < $length ; $i++){
            if($password[$i] == $password[0]){
                $count++;
            }
        }
        
        if($count == $length){
            return '密码单一';
        }
        
        return true;
    }

 

21.检测字符集是否是utf-8编码

public function is_utf8($str)
    {
        $c = 0;
        $b = 0;
        $bits = 0;
        $len = strlen($str);
        for($i = 0; $i < $len; $i++) {
            $c = ord($str[$i]);
            if ($c > 128) {
                if (($c >= 254)) return false;
                elseif ($c >= 252) $bits = 6;
                elseif ($c >= 248) $bits = 5;
                elseif ($c >= 240) $bits = 4;
                elseif ($c >= 224) $bits = 3;
                elseif ($c >= 192) $bits = 2;
                else return false;
                if (($i + $bits) > $len) return false;
                while ($bits > 1) {
                    $i++;
                    $b = ord($str[$i]);
                    if ($b < 128 || $b > 191) return false;
                    $bits--;
                } 
            } 
        } 
        return true;
    } 

 

22.检测session是否开启

function is_session_started()
{
    if ( php_sapi_name() !== 'cli' ) {
        if ( version_compare(phpversion(), '5.4.0', '>=') ) {
            return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
        } else {
            return session_id() === '' ? FALSE : TRUE;
        }
    }
    return FALSE;
}

// Example
if ( is_session_started() === FALSE ) session_start();
session 三种状态:
    PHP_SESSION_DISABLED   会话被禁用
    PHP_SESSION_NONE  会话启用,但会话不存在
    PHP_SESSON_ACTIVE  会话启用,同时会话存在

 

23.验证是否是https协议

function checkSsl()
{
    return (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'); 
}

 

24.验证图片是否是真实GIF图

function checkGif($img)
{
    if(!file_exists($img)){    
        return -1;
    }
    $handle = fopen($img,'rb');
    $img = fread($handle,'1024');
    fclose($handle);
    return strpos($img,chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0') === FALSE ? 0 : 1;
}

 

25.判断数组是否是多维数组

function checkMultArray($arr)
{
    return count($arr) !== count($arr,1);
}

 

 

posted @ 2018-05-17 22:34  X-Wolf  阅读(533)  评论(0编辑  收藏  举报