当前位置:首页 > 开发 > 编程语言 > PHP > 正文

【汇总】PHP常用小函数【概率,毫秒,IP】

发表于: 2011-10-10   作者:crizy   来源:转载   浏览:
PHP
摘要: /** * 概率计算 * @param array('a'=>0.5, 'b'=>0.2) * @return string (key of array, eg. 'a' or 'b') */ function random($ps) { $arr = array(); $key = md5(serialize($ps)); if(!
/**
 * 概率计算
 * @param array('a'=>0.5, 'b'=>0.2)
 * @return string (key of array, eg. 'a' or 'b')
 */
function random($ps) {
    $arr = array();
    $key = md5(serialize($ps));

    if(!isset($arr[$key])) {
        $max = array_sum($ps);
        foreach($ps as $k => $v) {
            $v = $v / $max * 10000;
            for($i=0; $i<$v; $i++) {
                $arr[$key][] = $k;
            }
        }  
    }

    return $arr[$key][mt_rand(0, count($arr[$key])-1)];
}

 

/**
  * 返回毫秒数
  * 
  * @return float
  */
function microtime_float() {
	list($a, $b) = explode(' ', microtime());
	return ((float)$a + (float)$b) * 1000;
}

 

/**
  * 取得客户端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);
}
 

...

【汇总】PHP常用小函数【概率,毫秒,IP】

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号