不错的php方法

<?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;
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值