- 帖子
- 1008
- 主题
- 761
- 精华
- 0
- 积分
- 1794
- 贡献
- 941
- 激情
- 7771
- 阅读权限
- 100
- 最后登录
- 2020-4-28
|
[PHP 语言] 知识扫盲:php语言中SERVER_NAME与HTTP_HOST的用法区别
php中HTTP_HOST和SERVER_NAME的用法区别:
" I# T) U! c, t! }" v1 ~& p' I这两个通常是可以通用的,但还是有一些小的区别.; l+ E; x$ Z6 k8 A/ G
PHP中的SERVER预保留变量中HTTP_HOST 和 SERVER_NAME经常是一样的,原因是服务器使用的是默认的端口80,
, y7 d. d* z0 M yHTTP_HOST将省略不显示,而HTTP服务的默认端口就是80,所以大多数情况下,HTTP_HOST都没有显示这个端口号。1 Q0 w8 p$ r+ I* o+ D1 d+ K
6 l% |5 Y* J0 O$ {# ]! n- D8 P2 H
而如果使用的是ssl链接,那么端口号将被显示出来。
! t! | g9 C4 s4 @7 g如果你的程序中有设定端口的功能,则可以考虑使用SERVER_NAME& e# r& q4 U' l( C
否则,建议使用HTTP_HOST/ [0 b6 E7 o7 F$ {
! N" `& m1 B: i, z6 `很经典的语句:
, [# x" W3 `% P$ O( z1 q$server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv("SERVER_NAME"));
2 P# W2 Q, y8 ]4 L1 C* s8 r3 {6 F所以HTTP_HOST = SERVER_NAME:SERVER_PORT ' {$ z. ~; c# F- A& E" R
) e, n& C1 { d" W- a4 O: U3 v
参考:http://www.itwis.com/html/php/phpteach/20091107/6850.html |
|