回 帖 发 新 帖 刷新版面

主题:请教两个问题 谢谢

1。书上有个函数:
$ip=$REMOTE_ADDR;
返回的是127.0.0.1,
请问这是为什么?哪儿错了?
2。echo 和 print的区别是什么?
谢谢!

回复列表 (共4个回复)

沙发

1.$REMOTE_ADDR;返回远端服务ip地址,由于你是本地测试的当然就是127.0.0.1了
2.print是函数,而echo不是应该是个方法;print有返回值,成功就返回1,失败就0,而echo没有返回值;理论上echo要比print快,因为它没有返回值,应该是感觉不出来的;echo可以同时输出多个字符串,而在 print 函数中则只可以同时输出一个字符串.

板凳

longlong16你好,谢谢你的详尽解释,关于$REMOTE_ADDR,记得你以前的签名,
谁浏览就得到谁的ip,可当远方朋友打开我的网页时,得到的还是127.0.0.1,
我做了一个网页,代码在下面,请帮我看看错在哪里好吗?谢谢!
http://xiaohejiao.512j.com/2007/ip.php
<?php
 echo $REMOTE_ADDR;
?>

3 楼

服务器有各种情况,有的用代理得不到准确的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 楼

longlong16谢谢你,我终于得到了自己的ip地址,
我把上面的4句话分别屏蔽,可以得到ip的是第二句:
$ip=getenv('HTTP_X_FORWARDED_FOR');
第一句得到空显,三四句都得到127.0.0.1 
非常感谢,谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册