不错的php方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41198398/article/details/80227390

<?php
/**
 * To change this template use File | Settings | File Templates.
 */
class static_reg {
    const CHS = '/^[\u0391-\uFFE5]+$/';//必须为汉字
    const MOBILE = '/^((\(\d{2,3}\))|(\d{3}\-))?(13|15|18|14|16|17|19)\d{9}$/';


    public static function chs($str){
        $pattern = '/^[\x{4e00}-\x{9fa5}]+$/u';
        if (!preg_match($pattern, $str)){
                return false;
        } else {
            return true;
        }
    }
    /*
     * var patternName = /^[\u4E00-\u9FA5]+$/i;
        var patternIdNum = /^[1-9]\d{14}|\d{17}$/;
        var patternPhoneNum = /^((\(\d{2,3}\))|(\d{3}\-))?(13|15|18|14)\d{9}$/;
        var patternCardNum = /^[1-9]\d{15,25}$/;
     * */
    public static function id_card($str){
        $pattern = '/^[1-9]\d{14}|\d{17}$/';
        if (!preg_match($pattern, $str)){
            return false;
        } else {
            return true;
        }
    }


    public static function mobile($str){
        $pattern = '/^((\(\d{2,3}\))|(\d{3}\-))?(13|15|18|14|16|17|19)\d{9}$/';
        if (!preg_match($pattern, $str)){
            return false;
        } else {
            return true;
        }
    }


    public static function bank_no($str){
        $pattern = '/^[1-9]\d{15,25}$/';
        if (!preg_match($pattern, $str)) {
            return false;
        } else {
            return true;
        }
    }


    public static function trade_no($str){
        $pattern = "/^[2][0-9A-Za-z]{27}$/";
        if (!preg_match($pattern, $str)){
            return false;
        } else {
            return true;
        }
    }


    public static function money($str){
        $pattern = "/^[0]\\.0[1-9]{1}$/";
        if (!preg_match($pattern, $str)) {
            return false;
        } else {
            return true;
        }
    }


    public static function remark($str){
        $pattern = "/^[0-9a-zA-Z]{3,10}$/";
        if (!preg_match($pattern, $str)){
            return false;
        } else {
            return true;
        }
    }


    //必须为汉字,英文,数字中的组合
    public static function real_name($str){
        $pattern = '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]+$/u';
        if (!preg_match($pattern, $str)){
            return false;
        } else {
            return true;
        }
    }

}

/**
     * 获得用户的真实IP地址
     *
     * @access  public
     * @return  string
     */
    public static function real_ip() {
        static $realip = NULL;


        if ($realip !== NULL) {
            return $realip;
        }


        if (isset($_SERVER)) {
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);


                /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
                foreach ($arr AS $ip) {
                    $ip = trim($ip);


                    if ($ip != 'unknown') {
                        $realip = $ip;


                        break;
                    }
                }
            } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
                $realip = $_SERVER['HTTP_CLIENT_IP'];
            } else {
                if (isset($_SERVER['REMOTE_ADDR'])) {
                    $realip = $_SERVER['REMOTE_ADDR'];
                } else {
                    $realip = '0.0.0.0';
                }
            }
        } else {
            if (getenv('HTTP_X_FORWARDED_FOR')) {
                $realip = getenv('HTTP_X_FORWARDED_FOR');
            } elseif (getenv('HTTP_CLIENT_IP')) {
                $realip = getenv('HTTP_CLIENT_IP');
            } else {
                $realip = getenv('REMOTE_ADDR');
            }
        }


        preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
        $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';


        return $realip;

    }

 /**
     * 写日志方法
   
     */
    public static function wlog($log, $file = 'log') {
$uniqid = self::get_sid();
        $user = value($_SESSION['user']['username']);
$log = date('Y-m-d H:i:s') . "\t[" .$uniqid. "]\t" . "[" .$user. "]\t" .$log . "\n";
$filePath = SITE_ROOT.'/logs/'.date('Y/m/d/').$file.'.log';
if(ENVIRONMENT == 'production'){
            $filePath = '/data/gamelogs/'.date('Y/m/d/').$file.'.log';
}
if (!file_exists(dirname($filePath))) {
mkdir(dirname($filePath), 0777, true);
}
error_log($log, 3, $filePath);
    }


    public static function get_sid() {
        if (self::$sid == NULL){
            self::$sid = sha1(uniqid(4));
}
        return self::$sid;
    }

/**
 * 返回毫秒数
 *
 * @return float
 */
public function msectime() {
    list($msec, $sec) = explode(' ', microtime());
    $msectime =  (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
    return $msectime;
}

猜你喜欢

转载自blog.csdn.net/qq_41198398/article/details/80227390