1.获取客户端的IP地址
function get_client_ip(){
if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){
$ip = getenv('HTTP_CLIENT_IP');
}else if (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}else if (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown'))
$ip = getenv('REMOTE_ADDR');
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown'))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = 'unknown';
return($ip);
}
2.大小写转换
/*
* @author mreden
* @params array $aValue 需要转换的数组
* @params boolean $case 0:小写、默认值;1:大写
* @return array 转换后的数组
*/
function array_key_to_case( $aValue, $case = 0 )
{
$aValueTemp = array();
foreach ( $aValue as $key => $item ) {
if ($case) {
$keyTemp = strtoupper($key);
} else {
$keyTemp = strtolower($key);
}
$aValueTemp[$keyTemp] = $item;
if ( is_array($item) ) {
$aValueTemp[$keyTemp] = array_key_to_case($item, $case);
}
}
return $aValueTemp;
}
3.10进制转16进制处理
/**
* 10进制转16进制处理
* @param int $dev 10进制数值
* @param int $length
* @return string $hex 16进制数值
*/
function DevToHex( $dev, $length = 2 )
{
$hex = str_pad(dechex($dev), $length, '0', STR_PAD_LEFT );
return $hex;
}
4.将数据格式化成树形结构
/**
* 将数据格式化成树形结构
* @param $items
* @param string $id
* @param string $pid
* @param string $child
* @return array
*/
function get_tree($items, $id = 'id', $pid = 'pid', $child = 'children')
{
$tree = array(); //格式化好的树
foreach ($items as $item) {
if (isset($items[$item[$pid]])) {
$items[$item[$pid]][$child][] = &$items[$item[$id]];
} else {
$tree[] = &$items[$item[$id]];
}
}
return $tree;
}
5.取得当前日期和时间
/**
* 取得当前日期和时间
* @return string 当前日期和时间YYYY-MM-DD hh:mm:ss
*/
function get_datetime() {
$datetime = date('Y-m-d H:i:s');
return $datetime;
}