$s_server = gethostbyname($_SERVER["SERVER_NAME"]).":".$_SERVER["SERVER_PORT"];以上代码,在程序不同的位置,获取到的结果竟然不同。正确端口是8080,但是在程序的有些位置执行该代码,获得的端口却是80,有高手知道什么原因么?

解决方案 »

  1.   

    同一个php请求,server的值是不会变化的,可以肯定不同文件下值也是相同的。有一种可能,你指的不同文件下,是不同的php请求,而这不同的请求,你打开浏览器的网络监听再次确认下,是否都是访问的8080端口。
      

  2.   

    程序不同的位置,获取到的结果竟然不同。
    指的是同一个域名下的脚本吗?不同的位置是在同一php脚本吗
      

  3.   

    是的,同一个php程序,只是客户端请求执行到的文件不同
      

  4.   

    你的Apache版本是2一下的吗,另外,你开启了伪静态吗?如果是的话,请参考http://blog.hpyer.cn/php-cannot-get-server-physical-port-after-using-mod-rewrite.html
      

  5.   

    -----------------------------------------------------------
    这个帖子我看过了,不是这个问题。
    因为同一个程序中不同位置执行gethostbyname($_SERVER["SERVER_NAME"]).":".$_SERVER["SERVER_PORT"];得到的结果不同。
    apache版本2.2.15