PHP中$_SERVER参数用法总结
2023-09-14 08:57:34 时间
最近没事,深入研究$_SERVER使用方法,做了一个PHP信息查看器
$_SERVER['PHP_SELF'] #当前执行脚本的文件名,与document root有关。例如,在地址为http://example.com/foo/bar.php的脚本中使用 $_SERVER['PHP_SELF']将得到/foo/bar.php。__FILE__常量包含当前(例如包含)文件的完整路径和文件名。从PHP4.3.0版本开始,如果 PHP以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。 - $_SERVER['argv'] #传递给该脚本的参数的数组。脚本以命令行方式运行时,argv变量传递给程序C语言样式的命令行参数。当通过GET方式调用时,该变量包含query string。 - $_SERVER['argc'] #包含命令行模式下传递给该脚本的参数的数目(如果运行在命令行模式下)。 - $_SERVER['GATEWAY_INTERFACE'] #服务器使用的CGI规范的版本;例如,“CGI/1.1”。 - $_SERVER['SERVER_ADDR'] #当前运行脚本所在的服务器的IP地址。 - $_SERVER['SERVER_NAME'] #当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。 #Note: 在Apache2里,必须设置 UseCanonicalName=On和ServerName。否则该值会由客户端提供,就有可能被伪造。上下文有安全性要求的环境里,不应该依赖此值。 - $_SERVER['SERVER_SOFTWARE'] #服务器标识字符串,在响应请求时的头信息中给出。 - $_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。 - $_SERVER['REQUEST_METHOD'] #访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”。 #Note:如果请求方法为HEAD,PHP脚本将在发送Header头信息之后终止(这意味着在产生任何输出后,不再有输出缓冲)。 - $_SERVER['REQUEST_TIME'] #请求开始时的时间戳。从PHP5.1.0起可用。 - $_SERVER['REQUEST_TIME_FLOAT'] #请求开始时的时间戳,微秒级别的精准度。自PHP5.4.0开始生效。 - $_SERVER['QUERY_STRING'] #query string(查询字符串),如果有的话,通过它进行页面访问。 - $_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。 - $_SERVER['HTTP_ACCEPT'] #当前请求头中Accept: 项的内容,如果存在的话。 - $_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求头中Accept-Charset: 项的内容,如果存在的话。例如:“iso-8859-1,*,utf-8”。 - $_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求头中Accept-Encoding: 项的内容,如果存在的话。例如:“gzip”。 - $_SERVER['HTTP_ACCEPT_LANGUAGE'] #当前请求头中Accept-Language: 项的内容,如果存在的话。例如:“en”。 - $_SERVER['HTTP_CONNECTION'] #当前请求头中Connection: 项的内容,如果存在的话。例如:“Keep-Alive”。 - $_SERVER['HTTP_HOST'] #当前请求头中Host: 项的内容,如果存在的话。 - $_SERVER['HTTP_REFERER'] #引导用户代理到当前页的前一页的地址(如果存在)。由user agent设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER的功能。简言之,该值并不可信。 - $_SERVER['HTTP_USER_AGENT'] #当前请求头中 User-Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。除此之外,你可以通过get_browser()来使用该值,从而定制页面输出以便适应用户代理的性能。 - $_SERVER['HTTPS'] #如果脚本是通过HTTPS协议被访问,则被设为一个非空的值。 #Note: 注意当使用IIS上的ISAPI方式时,如果不是通过HTTPS协议被访问,这个值将为off。 - $_SERVER['REMOTE_ADDR'] #浏览当前页面的用户的IP地址。 - $_SERVER['REMOTE_HOST'] #浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的REMOTE_ADDR。 #Note: 你的服务器必须被配置以便产生这个变量。例如在Apache中,你需要在httpd.conf中设置HostnameLookups On来产生它。参见 gethostbyaddr()。 - $_SERVER['REMOTE_PORT'] #用户机器上连接到Web服务器所使用的端口号。 - $_SERVER['REMOTE_USER'] #经验证的用户 - $_SERVER['REDIRECT_REMOTE_USER'] #验证的用户,如果请求已在内部重定向。 - $_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径。 #Note:如果在命令行界面(Command Line Interface, CLI)使用相对路径执行脚本,例如 file.php 或 ../file.php,那么 $_SERVER['SCRIPT_FILENAME'] 将包含用户指定的相对路径。 - $_SERVER['SERVER_ADMIN'] #该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。 - $_SERVER['SERVER_PORT'] #Web 服务器使用的端口。默认值为“80”。如果使用SSL安全连接,则这个值为用户设置的HTTP端口。 #Note:在Apache2里,为了获取真实物理端口,必须设置UseCanonicalName=On 以及UseCanonicalPhysicalPort=On。否则此值可能被伪造,不一定会返回真实端口值。上下文有安全性要求的环境里,不应该依赖此值。 - $_SERVER['SERVER_SIGNATURE'] #包含了服务器版本和虚拟主机名的字符串。 - $_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。 #Note: 自PHP4.3.2起,PATH_TRANSLATED在Apache2 SAPI模式下不再和Apache1一样隐含赋值,而是若Apache不生成此值,PHP便自己生成并将其值放入SCRIPT_FILENAME服务器常量中。这个修改遵守了CGI规范,PATH_TRANSLATED仅在PATH_INFO被定义的条件下才存在。 Apache2用户可以在httpd.conf中设置AcceptPathInfo=On来定义PATH_INFO。 - $_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。 - $_SERVER['REQUEST_URI'] #URI用来指定要访问的页面。例如 “/index.html”。 - $_SERVER['PHP_AUTH_DIGEST'] #当作为Apache模块运行时,进行HTTP Digest认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP头内容(以便作进一步的认证操作)。 - $_SERVER['PHP_AUTH_USER'] #当PHP运行在Apache或IIS(PHP5是ISAPI)模块方式下,并且正在使用HTTP认证功能,这个变量便是用户输入的用户名。 - $_SERVER['PHP_AUTH_PW'] #当PHP运行在Apache或IIS(PHP5是ISAPI)模块方式下,并且正在使用HTTP认证功能,这个变量便是用户输入的密码。 - $_SERVER['AUTH_TYPE'] #当PHP运行在Apache模块方式下,并且正在使用HTTP认证功能,这个变量便是认证的类型。 - $_SERVER['PATH_INFO'] #包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。例如,如果当前脚本是通过 URL http://www.example.com/php/path_info.php/some/stuff?foo=bar被访问,那么$_SERVER['PATH_INFO']将包含 /some/stuff。 - $_SERVER['ORIG_PATH_INFO'] #在被PHP处理之前,“PATH_INFO”的原始版本。
相关文章
- PHP之旅---出发(php+apache+MySQL)
- MySQL Error number: MY-013229; Symbol: ER_SERVER_GTID_UNSAFE_CREATE_DROP_TEMP_TABLE_IN_TRX_IN_SBR; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL与PHP设置时区(mysql时区php)
- 页面Linux下PHP页面显示问题排查(linux不能显示php)
- Oracle 参数 RDBMS_SERVER_DN 官方解释,作用,如何配置最优化建议
- 的应用利用PHP中MySQL函数实现功能强大的数据库操作(php中mysql函数)
- php workerman MySQL server has gone away解决方法详解编程语言
- PHP中实现Redis队列的挑战与实践(php队列redis)
- 实现使用PHP实现的Redis乐观锁(redis乐观锁php)
- PHP快速导出MySQL数据库的技巧(php导出mysql数据库)
- 数据深入了解:PHP查询MySQL数据库(php显示mysql)
- 数据库PHP编程实现从Oracle数据库读取数据(php读取oracle)
- PHP实现Redis的访问控制(php访问redis)
- 慢解决PHP连接MySQL慢的方法(php连接mysql时间)
- 数据库新SQL Server:创建数据库连接的新方式(新sqlserver连接)
- PHP在Linux上攀登新高度(php要linux)
- 利用SQL Server锁定机制进行性能优化分析(sqlserver锁分析)
- 使用SQL Server配置管理表(sqlserver配置表)
- 使用SQL Server软件构建数据节点,少花钱更高效!(sqlserver 费用)
- 管理用SQL Server实现自动化管理,提升工作效率(sqlserver自动化)
- SQL Server为你的数据库提供改进值(sqlserver更新值)
- 管理使用SQL Server动态管理,提升效率(sqlserver 动态)
- SQL Server主键访问性能的优化探讨(sqlserver主键慢)
- PHP连接Microsoft SQL Server数据库技巧(php 连 mssql)
- PHP实现MSSQL数据库的连接(php与mssql连接)
- 比较PostgreSQL与Microsoft SQL Server的优势和劣势(pgsql mssql)
- PHP MySQL 组合:开发数据库应用的必备工具(php mysql数据库)
- SQL Server:培养出数据库性能的真菜鸟(辣鸡sqlserver)
- 开启创新之旅Redis与PHP的结合(开启 redis php)
- 甲,打败SQL Server乙超级武装Oracle甲战胜SQL server乙(exp 武装oracle)
- 开通虚拟主机时提示Server.CreateObject失败的解决办法