getenv 的功能是取得一个指定的环境变量。
getenv('REMOTE_ADDR') 和 $_SERVER['REMOTE_ADDR'] 功能一样
但是当Web服务器API是ASAPI (IIS)的时候,getenv函数是不起作用的。这种情况下你如果用getenv来取得用户客户端ip的话,得到的将是错误的ip地址。
[ 测试代码 ]
1 $ip1 = $_SERVER['REMOTE_ADDR']; 2 $ip2 = getenv('REMOTE_ADDR'); 3 4 putenv("test=is a test"); 5 $str1 = getenv('test'); 6 $str2 = $_SERVER['test']; 7 8 echo "ip1:{$ip1}"; 9 echo "<br>"; 10 echo "ip2:{$ip2}"; 11 echo "<br>"; 12 echo "str:{$str1}"; 13 echo "<br>"; 14 echo "str:{$str2}";
[ 运行结果 ]
总结:putenv 可以设置一个新的环境变量但是从 $_SERVER 这个超全局数组中是看不到的,getenv 可以获取 $_SERVER 里面的成员