- 帖子
- 1008
- 主题
- 761
- 精华
- 0
- 积分
- 1794
- 贡献
- 941
- 激情
- 7771
- 阅读权限
- 100
- 最后登录
- 2020-4-28
|
[PHP 语言] 知识扫盲:php语言中SERVER_NAME与HTTP_HOST的用法区别
php中HTTP_HOST和SERVER_NAME的用法区别:9 N! p% U0 r3 P& r+ c* ]0 `1 Q
这两个通常是可以通用的,但还是有一些小的区别.' ]1 u: F" E5 x0 N8 x/ }
PHP中的SERVER预保留变量中HTTP_HOST 和 SERVER_NAME经常是一样的,原因是服务器使用的是默认的端口80,9 m3 W$ x8 o3 v6 p
HTTP_HOST将省略不显示,而HTTP服务的默认端口就是80,所以大多数情况下,HTTP_HOST都没有显示这个端口号。7 a! W9 e2 ~: U. N" x5 A. }
! f; h( n0 ?# Y
而如果使用的是ssl链接,那么端口号将被显示出来。. T& U! a4 ]. \: [1 P8 M% |
如果你的程序中有设定端口的功能,则可以考虑使用SERVER_NAME3 q7 e, C7 W( e" E
否则,建议使用HTTP_HOST \% s @4 A7 f9 x4 I* ^! A: F
I- K. L% v- y& N) L: T- Q/ p2 f
很经典的语句:/ ~5 i1 Q7 y9 n! s: s" _8 B
$server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv("SERVER_NAME"));
! _2 M3 f0 n) X- n+ t5 x所以HTTP_HOST = SERVER_NAME:SERVER_PORT ( T4 R% j' N6 u( c" a# A
/ c0 h' w8 ]$ s+ y7 a# G7 W& Z3 r
参考:http://www.itwis.com/html/php/phpteach/20091107/6850.html |
|