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