問題:取得訪客IP

function getIP() {

 global $_SERVER;

 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {

  $onlineip = getenv('HTTP_CLIENT_IP');

 } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {

  $onlineip = getenv('HTTP_X_FORWARDED_FOR');

 } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {

  $onlineip = getenv('REMOTE_ADDR');

 } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {

  $onlineip = $_SERVER['REMOTE_ADDR'];

 }

 $onlineip = preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);

 return $onlineipmatches[0];



問題如下

1、if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown'))

     strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown'

     他比較字串後勒?strcasecmp()會得到什麼值?

strcasecmp() 函数比较两个字符串。


该函数返回:

0 - 如果两个字符串相等

<0 - 如果 string1 小于 string2

>0 - 如果 string1 大于 string2 

例子


strcasecmp("Hello world!","HELLO WORLD!")
;
?>

输出:

0



2、 elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) 

      'HTTP_X_FORWARDED_FOR'

       這一段能得到什麼東西

3、$onlineip = preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);

        這一段在說什麼?


留言

這個網誌中的熱門文章

超任 三國志3代,登入武將金手指

歐姆龍 HEM-7600T 評價,購買心得分享(打臉文)

年青人眼鏡評價(負評),辛酸血淚史分享文