码迷,mamicode.com
首页 > Web开发 > 详细

php常用函数(一)格式验证篇

时间:2020-03-31 23:13:24      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:uri   substr   sans   top   常用函数   amp   mobile   display   user   

验证手机号是否正确

/**
 * 验证手机号是否正确
 * @param INT $mobile
 */
function isMobile($mobile)
{
    if (is_numeric($mobile)) {
        return preg_match(‘#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#‘, $mobile) ? true : false;   
    }
    return false;
}

验证用户名

/**
 * 验证用户名
 * @param string $username
 * 用户名2-18个字符
 * 开头只能为a-z,A-Z以及中文非符号字符
 */
function isUserName($username)
{
    $mb_len = mb_strlen($username, ‘utf-8‘);
    if ($mb_len >= 2 && $mb_len <= 18) {//长度不对
        if (preg_match(‘/^[a-zA-Z\x{4E00}-\x{9FFF}][a-zA-Z0-9_\x{4E00}-\x{9FFF}]+$/u‘, $username)) {
            return true;
        }
    }
    return false;
}

检查是否属于身份证号

/**
 * 检查是否属于身份证号
 * @param  string $number 传入的身份证号
 * @return bool
 */
function isIdCard($number)
{
    if (empty($number)) {
        return false;
    }
    // 转化为大写,如出现x
    $number = strtoupper($number);
    //加权因子 
    $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
    //校验码串 
    $ai = array(‘1‘, ‘0‘, ‘X‘, ‘9‘, ‘8‘, ‘7‘, ‘6‘, ‘5‘, ‘4‘, ‘3‘, ‘2‘);
    //按顺序循环处理前17位 
    $sigma = 0;
    for ($i = 0; $i < 17; $i++) {
        //提取前17位的其中一位,并将变量类型转为实数 
        $b = (int)$number{$i};
        //提取相应的加权因子 
        $w = $wi[$i];
        //把从身份证号码中提取的一位数字和加权因子相乘,并累加
        $sigma += $b * $w;
    }
    //计算序号 
    $snumber = $sigma % 11;
    //按照序号从校验码串中提取相应的字符进行比较
    if ($number{17} == $ai[$snumber]) {
        return true;
    } else {
        return false;
    }
}

根据身份证号码获取性别

/**
 * 根据身份证号码获取性别
 * @param  string $cid 身份证号
 * @return string 性别
 */
function getSex($cid)
{
    if (isIdCard($cid)) {
        return (int)substr($cid, 16, 1) % 2 === 0 ? ‘女士‘ : ‘先生‘;
    }
    return ‘‘;
}

检测E-Mail格式

/**
 * 检测E-Mail格式
 * @param string $email
 * email大于6个字符
 */
function is_email($email) 
{
	return strlen($email) > 6 && preg_match("/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/",$email);
}

  

验证手机号是否正确

/**
 * 验证手机号是否正确
 * @param INT $mobile
 */
function isMobile($mobile)
{
    if (is_numeric($mobile)) {
        return preg_match(‘#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#‘, $mobile) ? true : false;   
    }
    return false;
}

验证用户名

/**
 * 验证用户名
 * @param string $username
 * 用户名2-18个字符
 * 开头只能为a-z,A-Z以及中文非符号字符
 */
function isUserName($username)
{
    $mb_len = mb_strlen($username, ‘utf-8‘);
    if ($mb_len >= 2 && $mb_len <= 18) {//长度不对
        if (preg_match(‘/^[a-zA-Z\x{4E00}-\x{9FFF}][a-zA-Z0-9_\x{4E00}-\x{9FFF}]+$/u‘, $username)) {
            return true;
        }
    }
    return false;
}

检查是否属于身份证号

/**
 * 检查是否属于身份证号
 * @param  string $number 传入的身份证号
 * @return bool
 */
function isIdCard($number)
{
    if (empty($number)) {
        return false;
    }
    // 转化为大写,如出现x
    $number = strtoupper($number);
    //加权因子 
    $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
    //校验码串 
    $ai = array(‘1‘, ‘0‘, ‘X‘, ‘9‘, ‘8‘, ‘7‘, ‘6‘, ‘5‘, ‘4‘, ‘3‘, ‘2‘);
    //按顺序循环处理前17 
    $sigma = 0;
    for ($i = 0; $i < 17; $i++) {
        //提取前17位的其中一位,并将变量类型转为实数 
        $b = (int)$number{$i};
        //提取相应的加权因子 
        $w = $wi[$i];
        //把从身份证号码中提取的一位数字和加权因子相乘,并累加
        $sigma += $b * $w;
    }
    //计算序号 
    $snumber = $sigma % 11;
    //按照序号从校验码串中提取相应的字符进行比较
    if ($number{17} == $ai[$snumber]) {
        return true;
    } else {
        return false;
    }
}

根据身份证号码获取性别

/**
 * 根据身份证号码获取性别
 * @param  string $cid 身份证号
 * @return string 性别
 */
function getSex($cid)
{
    if (isIdCard($cid)) {
        return (int)substr($cid, 16, 1) % 2 === 0 ? 女士 : 先生;
    }
    return ‘‘;
}

验证手机号是否正确

/**
 * 验证手机号是否正确
 * @param INT $mobile
 */
function isMobile($mobile)
{
    if (is_numeric($mobile)) {
        return preg_match(‘#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#‘, $mobile) ? true : false;   
    }
    return false;
}

检测E-Mail格式

/**
 * 检测E-Mail格式
 * @param string $email
 * email大于6个字符
 */
function is_email($email) 
{
	return strlen($email) > 6 && preg_match("/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/",$email);
}

php常用函数(一)格式验证篇

标签:uri   substr   sans   top   常用函数   amp   mobile   display   user   

原文地址:https://www.cnblogs.com/sai564/p/12608887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!