主题:请教两个问题 谢谢
淡淡的
[专家分:2030] 发布于 2007-07-06 11:41:00
1。书上有个函数:
$ip=$REMOTE_ADDR;
返回的是127.0.0.1,
请问这是为什么?哪儿错了?
2。echo 和 print的区别是什么?
谢谢!
回复列表 (共4个回复)
沙发
longlong16 [专家分:10670] 发布于 2007-07-06 13:34:00
1.$REMOTE_ADDR;返回远端服务ip地址,由于你是本地测试的当然就是127.0.0.1了
2.print是函数,而echo不是应该是个方法;print有返回值,成功就返回1,失败就0,而echo没有返回值;理论上echo要比print快,因为它没有返回值,应该是感觉不出来的;echo可以同时输出多个字符串,而在 print 函数中则只可以同时输出一个字符串.
板凳
淡淡的 [专家分:2030] 发布于 2007-07-06 17:49:00
longlong16你好,谢谢你的详尽解释,关于$REMOTE_ADDR,记得你以前的签名,
谁浏览就得到谁的ip,可当远方朋友打开我的网页时,得到的还是127.0.0.1,
我做了一个网页,代码在下面,请帮我看看错在哪里好吗?谢谢!
http://xiaohejiao.512j.com/2007/ip.php
<?php
echo $REMOTE_ADDR;
?>
3 楼
longlong16 [专家分:10670] 发布于 2007-07-07 11:53:00
服务器有各种情况,有的用代理得不到准确的ip,要么就是你用的这个空间的服务器有问题。现在写了个函数获得ip,你试试有没有作用:
function realip(){
if(getenv('HTTP_CLIENT_IP')){
$ip=getenv('HTTP_CLIENT_IP');
}elseif(getenv('HTTP_X_FORWARDED_FOR')){
$ip=getenv('HTTP_X_FORWARDED_FOR');
}elseif(getenv('REMOTE_ADDR')){
$ip=getenv('REMOTE_ADDR');
}else{
$ip=$HTTP_SERVER_VARS['REMOTE_ADDR'];
}
return $ip;
}
直接调用这个函数 如不能显示 也没有办法了
4 楼
淡淡的 [专家分:2030] 发布于 2007-07-07 12:20:00
longlong16谢谢你,我终于得到了自己的ip地址,
我把上面的4句话分别屏蔽,可以得到ip的是第二句:
$ip=getenv('HTTP_X_FORWARDED_FOR');
第一句得到空显,三四句都得到127.0.0.1
非常感谢,谢谢!
我来回复