转贴:http://hi.baidu.com/shashadu/blog/item/bbdc045448677059574e0045.html
php中HTTP_HOST和SERVER_NAME的用法区别
2010-07-23 17:27
php中HTTP_HOST和SERVER_NAME的用法区别:
这两个通常是可以通用的,但还是有一些小的区别. PHP中的SERVER预保留变量中HTTP_HOST 和 SERVER_NAME经常是一样的,原因是服务器使用的是默认的端口80, HTTP_HOST将省略不显示,而HTTP服务的默认端口就是80,所以大多数情况下,HTTP_HOST都没有显示这个端口号。 而如果使用的是ssl链接,那么端口号将被显示出来。 如果你的程序中有设定端口的功能,则可以考虑使用SERVER_NAME 否则,建议使用HTTP_HOST 很经典的语句: $server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv("SERVER_NAME")); 所以HTTP_HOST = SERVER_NAME:SERVER_PORT |