| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | <?php/** * FecShop file. * * @link http://www.fecshop.com/ * @copyright Copyright (c) 2016 FecShop Software LLC * @license http://www.fecshop.com/license/ */namespace fec\helpers;use Yii; /** * @author Terry Zhao <2358269014@qq.com> * @since 1.0 */class CFunc{	# 1.object 转换成  数组。	public static function object_to_array($obj)	{		//$_arr = is_object($obj) ? get_object_vars($obj) : $obj;		if(is_object($obj) || is_array($obj)){			if(is_object($obj)){				$_arr = get_object_vars($obj);			}else{				$_arr = $obj;			}			foreach ($_arr as $key => $val)			{				$val = (is_array($val) || is_object($val)) ? self::object_to_array($val) : $val;				$arr[$key] = $val;			}			return $arr;		}else{			return $obj;		}			}		# 2.是否是时间格式	public static function is_time($time)	{		$time = trim($time);		$pattern1 = '/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/s';		$r1 =  preg_match($pattern1, $time);				$pattern2 = '/^\d{4}-\d{2}-\d{2}$/s';		$r2 =  preg_match($pattern2, $time);		return ($r1 || $r2 );	}		# 3.对二维数组进行排序	/*  譬如数组		$arr = [			['name' = 'x1','age'=33],			['name' = 'y1','age'=11],			['name' = 'a1','age'=66],			['name' = 't1','age'=44],		];		$result = CFunc::array_sort($arr,'name','asc');	*/	# 二维数组进行排序	# $array为要排序的数组	# $keys为要用来排序的键名,二维数组的key	# $type默认为升序排序 	public static function array_sort($array,$keys,$dir='asc',$isFloat=true){  		 		$keysvalue = $new_array = array();  		foreach ($array as $k=>$v){  			if($isFloat){				$keysvalue[$k] = (float)$v[$keys];			}else{				$keysvalue[$k] = $v[$keys];			}  		}  		if($dir == 'asc'){  			asort($keysvalue);  		}else{  			arsort($keysvalue);  		}  		reset($keysvalue);  		foreach ($keysvalue as $k=>$v){  			$new_array[$k] = $array[$k];  		}  		return $new_array;  	}		# 4.得到真实的IP	public static function  get_real_ip(){		$ip=false;		if(!empty($_SERVER["HTTP_CLIENT_IP"])){			$ip = $_SERVER["HTTP_CLIENT_IP"];		}		if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {			$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);			if ($ip) { 				array_unshift($ips, $ip); $ip = FALSE; 			}			for ($i = 0; $i < count($ips); $i++) {				if (!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) {					$ip = $ips[$i];					break;				}			}		}				return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);	}		# 得到4位小数点	public function getFormatFloat($data,$decimal=4){		return round($data,$decimal);			}	}
 |