日常开发过程中,常常需要用PHP获取服务器的配置和必要信息,又或者需要获取远程服务器的信息或者ip地址、主机名等。有些方法名时常会混淆,有些参数含义也不尽理解,这里就利用工作后的空余时间写写归纳和总结吧。
2.1 $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等信息的数组。这个数组中内容由 Web 服务器创建。
注:$_SERVER这个数组是只有通过web服务器接收到的访问才能获取到服务器的信息,如果只是在代码目录下以CGI方式执行php脚本,则是无法获取到一些客户端地址等参数的值。
如果要在多种方式下获取系统或者服务器的配置,可以用$_ENV或者getenv()函数获取,可参考此链接:http://php.net/manual/zh/reserved.variables.environment.php
2.2 $_SERVER是一个超全局变量,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
2.3 关于$_SERVER变量的参数列表及其含义如下:
(1)gethostbyname()函数——返回主机名 hostname 对应的 IPv4 互联网地址。
用法:
string gethostbyname ( string $hostname ) (2)gethostname()函数 — 获取本地机器的标准主机名。 用法: string gethostname ( void ) (3)gethostbyaddr()函数 — 获取指定的IP地址对应的主机名。 用法: string gethostbyaddr ( string $ip_address ) (4)gethostbynamel()函数——返回互联网主机名 hostname 解析出来的 IPv4 地址列表。 用法: array gethostbynamel ( string $hostname ) (5)getservbyname()函数——返回互联网服务 service 指定的协议 protocol 中对应的端口, 依据 /etc/services。 用法: int getservbyname ( string $service , string $protocol )