php常用类

来源:互联网 发布:斯维尔软件 编辑:程序博客网 时间:2024/06/08 06:58

<?php
/**
* Check检测类
* 版本:0.4.1
* 作者:Lazy
* Email:o0lazy0o at gmail dot com
* Log:根据自己的需要添加了几个检测功能IP,DSN,身份证
* 修复身份证的一个小小bug...判断x大小写的问题...
* -___-!!
*/
Class check{

    /**
    * 构造函数
    * 默认:空,不做任何处理.
    */
    Function check(){
    }

    /**
    * IsUsername函数:检测是否符合用户名格式
    * $Argv是要检测的用户名参数
    * $RegExp是要进行检测的正则语句
    * 返回值:符合用户名格式返回用户名,不是返回false
    */
    Function is_username($Argv){
        $RegExp='/^[a-zA-Z0-9_]{3,16}$/';        //由大小写字母跟数字组成并且长度在3-16字符直接
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
    * IsMail函数:检测是否为正确的邮件格式
    * $Argv是要检测的用户名参数
    * $RegExp是要进行检测的正则语句
    * 返回值:是正确的邮件格式返回邮件,不是返回false
    */
    Function is_mail($Argv){
        $RegExp='/^[a-z0-9][a-z\.0-9-_]+@[a-z0-9_-]+(?:\.[a-z]{0,3}\.[a-z]{0,2}|\.[a-z]{0,3}|\.[a-z]{0,2})$/i';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
    * IsSmae函数:检测参数的值是否相同
    * $ArgvOne,$ArgvTwo是要进行检测的值
    * $Force是否进行增强行检测,是同时检测变量类型,默认为否
    * 返回值:相同返回true,不相同返回false
    */
    Function is_same($ArgvOne,$ArgvTwo,$Force=false){
        return $Force?$ArgvOne===$ArgvTwo:$ArgvOne==$ArgvTwo;
    }

    /**
    * IsQQ函数:检测参数的值是否符合QQ号码的格式
    * $Argv是要检测的QQ参数
    * $RegExp是要进行检测的正则语句
    * 返回值:是正确的QQ号码返回QQ号码,不是返回false
    */
    Function is_qq($Argv){
        $RegExp='/^[1-9][0-9]{5,11}$/';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
    * IsMobile函数:检测参数的值是否为正确的中国手机号码格式
    * $Argv是要检测的手机号码参数
    * $RegExp是要进行检测的正则语句
    * 返回值:是正确的手机号码返回手机号码,不是返回false
    */
    Function is_mobile($Argv){
        $RegExp='/^(?:13|15|18)[0-9]{9}$/';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
    * IsTel函数:检测参数的值是否为正取的中国电话号码格式包括区号
    * $Argv是要检测的电话号码参数
    * $RegExp是要进行检测的正则语句
    * 返回值:是正确的电话号码返回电话号码,不是返回false
    */
    Function is_tel($Argv){
        $RegExp='/[0-9]{3,4}-[0-9]{7,8}$/';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
    * IsNickname函数:检测参数的值是否为正确的昵称格式(Beta)
    * $Argv是要检测的昵称格式参数
    * $RegExp是要进行检测的正则语句
    * 返回值:是正确的昵称格式返回昵称格式,不是返回false
    */
    Function is_nickname($Argv){
        $RegExp='/^\s*$|^c:\\con\\con$|[%,\*\"\s\t\<\>\&\'\(\)]|\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8/is';        //Copy From DZ
        return preg_match($RegExp,$Argv)?false:$Argv;
    }

    /**
    * IsChinese函数:检测参数是否为中文
    * $Argv是要检测的字符内码范围
    * $RegExp是要进行检测的正则语句
    * 返回值:是返回参数,不是返回false
    */
    function is_chinese($Argv,$Encoding='utf8'){
        $RegExp = $Encoding=='utf8'?'/^[\x{4e00}-\x{9fa5}]+$/u':'/^([\x80-\xFF][\x80-\xFF])+$/';
        Return preg_match($RegExp,$Argv)?$Argv:False;
    }

    /**
    * IsDSN函数:简单的检测是否符合DSN规格
    * DSN格式如下:scheme://username:password@hostname:port/path
    */
    function is_dsn($Argv){
        $RegExp='/^(?:[a-z]{3,12}:\/\/[^:]+:[^@]+@[^:]+:[^\/]+\/[a-z_][a-z0-9_]+|[a-z]{5,12}:\/\/[^:]+:[^@]+@[^\/]+\/[a-z_][a-z0-9_]+|[a-z]{5,12}:\/\/[^@]+@[^:]+:[^\/]+\/[a-z_][a-z0-9_]+|[a-z]{5,12}:\/\/[^@]+@[^\/]+\/[a-z_][a-z0-9_]+)$/';//有bug,不想修复 ^^!
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
    * 检测参数是否为数值
    */
    function is_number($Argv){
        return is_numeric($Argv)?intval($Argv):false;
    }

    /**
    * 检测参数是否为字母
    */
    function is_alpha($Argv){
        return ctype_alpha($Argv)?$Argv:false;
    }
   
    /**
    * 检测参数长度是否超过一个值
    */
    function is_length($Argv,$Size){
        return (strlen($Argv) > $Size)?false:$Argv;
    }

    /**
    * 简单的检测参数是否为IP
    */
    function is_ip($IP){
        $Result = ip2long($this->Server);
        return ($Resul==-1 || $Result==false)?false:$IP;
    }

    /**
      * 检测参数是否为正确的身份证号码,只支持18位身份证,不做区域/年份/性别判断,只做检验.
      */
    function is_id($ID){
        $Weighting = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
        $Verify = array(1,0,'X',9,8,7,6,5,4,3,2);
        //$Length = strlen($ID);
        $Sum = 0;
        $Regexp = '/[1-6][1-6][0-9]{15}[0-9x]/i';
        if(!preg_match($Regexp,$ID)){
            return false;
        }
        $Last = substr($ID,17,1);
        for($I=0;$I<17;$I++){
            $Sum = $Sum+intval(substr($ID,$I,1))*$Weighting[$I];
        }
        $Y = $Sum % 11;
        if(strtoupper($Last) != $Verify[$Y]){
            return false;
        }
        return true;
    }
}
?>

PHP常用类 不断更新中
/*
作用:取得随机字符串
参数:
    1、(int)$length = 32 #随机字符长度,默认为32
    2、(int)$mode = 0 #随机字符类型,0为大小写英文和数字,1为数字,2为小写子木,3为大写字母,4为大小写字母,5为大写字母和数字,6为小写字母和数字
返回:取得的字符串
使用:
    $code = new activeCodeObj;
    $str = $code->getCode($length, $mode);
*/
class activeCodeObj
{
    function getCode ($length = 32, $mode = 0)
    {
        switch ($mode) {
            case '1':
                $str = '1234567890';
            break;
            case '2':
                $str = 'abcdefghijklmnopqrstuvwxyz';
            break;
            case '3':
                $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            break;
            case '4':
                $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
            break;
            case '5':
                $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
            break;
            case '6':
                $str = 'abcdefghijklmnopqrstuvwxyz1234567890';
            break;
            default:
                $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
            break;
        }
        $result = '';
        $l = strlen($str);
        for($i = 0;$i < $length;$i ++){
            $num = rand(0, $l);
            $result .= $str[$num];
        }
        return $result;
    }
}
PHP代码:--------------------------------------------------------------------------------
/*
作用:取得客户端信息
参数:
返回:指定的资料
使用:
    $code = new clientGetObj;
    1、浏览器:$str = $code->getBrowse();
    2、IP地址:$str = $code->getIP();
    4、操作系统:$str = $code->getOS();
*/
class clientGetObj
{
    function getBrowse()
    {
        global $_SERVER;
        $Agent = $_SERVER['HTTP_USER_AGENT'];
        $browser = '';
        $browserver = '';
        $Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb');
        for($i = 0; $i <= 7; $i ++){
            if(strpos($Agent, $Browsers[$i])){
                $browser = $Browsers[$i];
                $browserver = '';
            }
        }
        if(ereg('Mozilla', $Agent) && !ereg('MSIE', $Agent)){
            $temp = explode('(', $Agent);
            $Part = $temp[0];
            $temp = explode('/', $Part);
            $browserver = $temp[1];
            $temp = explode(' ', $browserver);
            $browserver = $temp[0];
            $browserver = preg_replace('/([d.]+)/', '\1', $browserver);
            $browserver = $browserver;
            $browser = 'Netscape Navigator';
        }
        if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent)) {
            $temp = explode('(', $Agent);
            $Part = $temp[1];
            $temp = explode(')', $Part);
            $browserver = $temp[1];
            $temp = explode(' ', $browserver);
            $browserver = $temp[2];
            $browserver = preg_replace('/([d.]+)/', '\1', $browserver);
            $browserver = $browserver;
            $browser = 'Opera';
        }
        if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)){
            $temp = explode('(', $Agent);
            $Part = $temp[1];
            $temp = explode(';', $Part);
            $Part = $temp[1];
            $temp = explode(' ', $Part);
            $browserver = $temp[2];
            $browserver = preg_replace('/([d.]+)/','\1',$browserver);
            $browserver = $browserver;
            $browser = 'Internet Explorer';
        }
        if($browser != ''){
            $browseinfo = $browser.' '.$browserver;
        } else {
            $browseinfo = false;
        }
        return $browseinfo;
    }
    function getIP ()
    {
        global $_SERVER;
        if (getenv('HTTP_CLIENT_IP')) {
            $ip = getenv('HTTP_CLIENT_IP');
        } else if (getenv('HTTP_X_FORWARDED_FOR')) {
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        } else if (getenv('REMOTE_ADDR')) {
            $ip = getenv('REMOTE_ADDR');
        } else {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        return $ip;
    }
    function getOS ()
    {
        global $_SERVER;
        $agent = $_SERVER['HTTP_USER_AGENT'];
        $os = false;
        if (eregi('win', $agent) && strpos($agent, '95')){
            $os = 'Windows 95';
        }
        else if (eregi('win 9x', $agent) && strpos($agent, '4.90')){
            $os = 'Windows ME';
        }
        else if (eregi('win', $agent) && ereg('98', $agent)){
            $os = 'Windows 98';
        }
        else if (eregi('win', $agent) && eregi('nt 5.1', $agent)){
            $os = 'Windows XP';
        }
        else if (eregi('win', $agent) && eregi('nt 5', $agent)){
            $os = 'Windows 2000';
        }
        else if (eregi('win', $agent) && eregi('nt', $agent)){
            $os = 'Windows NT';
        }
        else if (eregi('win', $agent) && ereg('32', $agent)){
            $os = 'Windows 32';
        }
        else if (eregi('linux', $agent)){
            $os = 'Linux';
        }
        else if (eregi('unix', $agent)){
            $os = 'Unix';
        }
        else if (eregi('sun', $agent) && eregi('os', $agent)){
            $os = 'SunOS';
        }
        else if (eregi('ibm', $agent) && eregi('os', $agent)){
            $os = 'IBM OS/2';
        }
        else if (eregi('Mac', $agent) && eregi('PC', $agent)){
            $os = 'Macintosh';
        }
        else if (eregi('PowerPC', $agent)){
            $os = 'PowerPC';
        }
        else if (eregi('AIX', $agent)){
            $os = 'AIX';
        }
        else if (eregi('HPUX', $agent)){
            $os = 'HPUX';
        }
        else if (eregi('NetBSD', $agent)){
            $os = 'NetBSD';
        }
        else if (eregi('BSD', $agent)){
            $os = 'BSD';
        }
        else if (ereg('OSF1', $agent)){
            $os = 'OSF1';
        }
        else if (ereg('IRIX', $agent)){
            $os = 'IRIX';
        }
        else if (eregi('FreeBSD', $agent)){
            $os = 'FreeBSD';
        }
        else if (eregi('teleport', $agent)){
            $os = 'teleport';
        }
        else if (eregi('flashget', $agent)){
            $os = 'flashget';
        }
        else if (eregi('webzip', $agent)){
            $os = 'webzip';
        }
        else if (eregi('offline', $agent)){
            $os = 'offline';
        }
        else {
             $os = 'Unknown';
        }
        return $os;
    }
}
PHP代码:--------------------------------------------------------------------------------
class cnStrObj
{
    function substrGB ($str = '', $start = '', $len = ''){
        if($start == 0 || $start == ''){
            $start = 1;
        }
        if($str == '' || $len == ''){
            return false;
        }
        for($i = 0; $i < $start + $len; $i ++){
            $tmpstr = (ord($str[$i]) >= 161 && ord($str[$i]) <= 247&& ord($str[$i+1]) >= 161 && ord($str[$i+1]) <= 254)?$str[$i].$str[++$i]:$tmpstr = $str[$i];
            if ($i >= $start && $i < ($start + $len))
            {
                $tmp .=$tmpstr;
            }
        }
        return $tmp;
    }
   
    function isGB ($str)
    {
        $strLen = strlen($str);
        $length = 1;
        for($i = 0; $i < $strLen; $i ++) {
            $tmpstr = ord(substr($str, $i, 1));
            $tmpstr2 = ord(substr($str, $i+1, 1));
            if(($tmpstr <= 161 || $tmpstr >= 247) && ($tmpstr2 <= 161 || $tmpstr2 >= 247)){
                $legalflag = false;
            } else {
                $legalflag = true;
            }
        }
        return $legalflag;
    }
}

原创粉丝点击