[转贴]php中HTTP_HOST和SERVER_NAME的用法区别

转贴: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

你可能感兴趣的:([转贴]php中HTTP_HOST和SERVER_NAME的用法区别)