煮酒听雨
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册
$_SERVER数组信息
编辑时间:2017-04-09
编辑:忘尘
阅读:684
##### 示例URL `http://zjty.safeandsound.vip/home/article/articledetail/id/276.html` ```php array(37) { ["USER"]=> string(3) "www" ["HOME"]=> string(9) "/home/www" ["SCRIPT_FILENAME"]=>当前执行脚本的绝对路径名 string(52) "/home/wwwroot/zjty.safeandsound.vip/public/index.php" ["QUERY_STRING"]=>查询(query)的字符串(服务器请求时?后面的参数) string(41) "s=/home/article/articledetail/id/276.html" ["REQUEST_METHOD"]=>请求提交数据的方式 string(3) "GET" ["SCRIPT_NAME"]=>包含当前脚本的路径。这在页面需要指向自己时非常有用 string(10) "/index.php" ["REQUEST_URI"]=>访问此页面所需的 URI(当前URL) string(39) "/home/article/articledetail/id/276.html" ["DOCUMENT_URI"]=> string(10) "/index.php" ["DOCUMENT_ROOT"]=>当前运行 PHP 程序所在的文档根目录,在服务器配置文件中定义 string(42) "/home/wwwroot/zjty.safeandsound.vip/public" ["SERVER_PROTOCOL"]=>请求页面时通信协议的名称和版本 string(8) "HTTP/1.1" ["REQUEST_SCHEME"]=>服务器通信协议,是http或https string(4) "http" ["GATEWAY_INTERFACE"]=>服务器使用的CGI规范的版本 string(7) "CGI/1.1" ["SERVER_SOFTWARE"]=>服务器软件配置信息 string(12) "nginx/1.12.1" ["REMOTE_ADDR"]=>浏览网页的用户ip string(14) "113.109.111.16" ["REMOTE_PORT"]=>用户连接到服务器时所使用的端口 string(5) "57697" ["SERVER_ADDR"]=>当前运行脚本的服务器的ip地址。 string(13) "173.18.271.84" ["SERVER_PORT"]=>服务器端口 string(2) "80" ["SERVER_NAME"]=>输出配置文件httpd.conf中的ServerName域名(不带端口) string(21) "zjty.safeandsound.vip" ["HTTP_HOST"]=>请求头信息中的Host内容,获取当前域名,当服务器为非80端口时,会输出端口号,例如:mimiz.cn:8080 string(21) "zjty.safeandsound.vip" ["PATH_INFO"]=> 包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话 string(39) "/home/article/articledetail/id/276.html" 如:http://www.test.com/index.php/foo/bar.html?c=index&m=search $_SERVER['PATH_INFO'] = '/foo/bar.html',而 $_SERVER['QUERY_STRING'] = 'c=index&m=search'; ["HTTP_CACHE_CONTROL"]=>表示浏览器是否会缓存这个页面信息 string(9) "max-age=0" ["HTTP_UPGRADE_INSECURE_REQUESTS"]=>表示浏览器可读懂服务器发过来的请求 string(1) "1" ["HTTP_USER_AGENT"]=>获取用户相关信息,包括用户浏览器、操作系统等信息。 string(114) "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" ["HTTP_ACCEPT"]=>当前请求的 Accept: 头部的内容 string(85) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" ["HTTP_REFERER"]=>//链接到当前页面的前一页面的 URL 地址。 string(57) "http://zjty.safeandsound.vip/?keywords=%E5%B8%B8%E7%94%A8" ["HTTP_ACCEPT_LANGUAGE"]=>浏览器语言 string(14) "zh-CN,zh;q=0.9" ["HTTP_COOKIE"]=>浏览器的cookie信息 string(286) "" ["PHP_SELF"]=>当前正在执行脚本的文件名,不包含 url 中的参数(会造成的XSS漏洞攻击,不建议使用) string(0) "" ["REQUEST_TIME_FLOAT"]=> float(1530857330.1609) ["REQUEST_TIME"]=>得到请求开始时的时间戳 int(1530857330) } ``` ####页面程序相关 $_SERVER['PHP_SELF']:相对于网站根目录的路径及 PHP 程序名称,与 document root 相关。 $_SERVER['HTTP_REFERER']:链接到当前页面的前一页面的 URL 地址。 $_SERVER['SCRIPT_NAME']:相对于网站根目录的路径及 PHP 程序文件名称 。 $_SERVER['REQUEST_URI']:访问此页面所需的 URI 。 $_SERVER['SCRIPT_FILENAME']:当前运行 PHP 程序的绝对路径及文件名。 $_SERVER['PATH_TRANSLATED']:当前 PHP 程序所在文件系统(不是文档根目录)的基本路径。 $_SERVER['QUERY_STRING']:查询(query)的字符串(URL 中第一个问号 ? 之后的内容但不包括 # 后面的内容)。 $_SERVER['argv']:传递给当前 PHP 程序的参数。 $_SERVER['argc']:命令行模式下,包含传递给程序的命令行参数的个数。 $_SERVER['REQUEST_TIME']:请求开始时的时间戳,从 PHP 5.1.0 起有效。 $_SERVER['REQUEST_METHOD']:访问页面时的请求方法,例如:“GET”、“HEAD”,“POST”或“PUT”。 $_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: 头信息的内容。例如:“zh-cn”。 $_SERVER['HTTP_CONNECTION']:当前请求的 Connection: 头信息的内容。例如:“Keep-Alive”。 $_SERVER['HTTP_HOST']:当前请求的 Host: 头信息的内容。 $_SERVER['HTTPS']:如果 PHP 程序是通过 HTTPS 协议被访问,则被设为一个非空的值。 $_SERVER['PHP_AUTH_DIGEST']:当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP 头内容(以便作进一步的认证操作)。 $_SERVER['PHP_AUTH_USER']:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。 $_SERVER['PHP_AUTH_PW']:当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。 $_SERVER['AUTH_TYPE']:当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。 ####服务器端相关 $_SERVER['DOCUMENT_ROOT']:当前运行 PHP 程序所在的文档根目录,在服务器配置文件中定义。 $_SERVER['GATEWAY_INTERFACE']:服务器使用的 CGI 规范的版本,例如:“CGI/1.1”。 $_SERVER['SERVER_ADDR']:当前运行 PHP 程序所在的服务器的 IP 地址。 $_SERVER['SERVER_NAME']:当前运行 PHP 程序所在的服务器的名称。 $_SERVER['SERVER_ADMIN']:Apache 服务器配置文件中的 SERVER_ADMIN 参数。 $_SERVER['SERVER_PORT']:服务器所使用的端口。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。 $_SERVER['SERVER_SIGNATURE']:包含服务器版本和虚拟主机名的字符串。 $_SERVER['SERVER_SOFTWARE']:服务器标识的字串,在响应请求时的头信息中给出。 $_SERVER['SERVER_PROTOCOL']:请求页面时通信协议的名称和版本,例如:“HTTP/1.0”。 ####其他杂项 $_SERVER['HTTP_USER_AGENT']:当前请求的 User-Agent: 头信息的内容,该字符串表明了访问该页面的用户代理的信息。 $_SERVER['REMOTE_ADDR']:正在浏览当前页面用户的 IP 地址。 $_SERVER['REMOTE_HOST']:正在浏览当前页面用户的主机名。 $_SERVER['REMOTE_PORT']:用户连接到服务器时所使用的端口。 注意,如果以命令行方式运行 PHP,上面列出的元素几乎没有有效的(或是没有任何实际意义的)。 ####示例URL ` http://zjty.safeandsound.vip/index.php/home/article/articledetail/id/276.html?username=momo ` 问题:$_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别? - PHP_SELF: /home/article/articledetail/id/276.html - SCRIPT_NAME: /index.php - REQUEST_URI: /index.php/home/article/articledetail/id/276.html?username=momo ###### $_SERVER['PHP_SELF'] http://www.yoursite.com/example/ — – — /example/index.php http://www.yoursite.com/example/index.php — – — /example/index.php http://www.yoursite.com/example/index.php?a=test — – — /example/index.php http://www.yoursite.com/example/index.php/dir/test — – — /dir/test 当我们使用$_SERVER['PHP_SELF']的时候,无论访问的URL地址是否有index.php,它都会自动的返回 index.php。但是如果在文件名后面再加斜线的话,就会把后面所有的内容都返回在$_SERVER['PHP_SELF']。 ###### $_SERVER['REQUEST_URI'] http://www.yoursite.com/example/ — – — / http://www.yoursite.com/example/index.php — – — /example/index.php http://www.yoursite.com/example/index.php?a=test — – — /example/index.php?a=test http://www.yoursite.com/example/index.php/dir/test — – — /example/index.php/dir/test $_SERVER['REQUEST_URI']返回的是我们在URL里写的精确的地址,如果URL只写到”/”,就返回 “/” ###### $_SERVER['SCRIPT_NAME'] http://www.yoursite.com/example/ — – — /example/index.php http://www.yoursite.com/example/index.php — – — /example/index.php http://www.yoursite.com/example/index.php — – — /example/index.php http://www.yoursite.com/example/index.php/dir/test — – — /example/index.php 在所有的返回中都是当前的文件名/example/index.php
来说两句吧
提交评论
最新评论
我的标签
函数
面试
REDIS
LNMP
验证
时间
JS
LINUX
CPA
常量
MYSQL
备份
微信
文件
压缩
优化
SVN
PHP
集合
数组
HTML
收藏
NGINX
配置
日志
性能
加密
下载
FORM
WEB
样式
SQL
表单
配置,面试,REDIS
编码
ARRAY
替换
截取
密码
版本
进程
定时
测试
事务
数据
权限
安全
防火墙
索引
设计模式
安全,面试
缓存
热文排行
LNMP状态管理命令
navicat for mysql 导入xlsx,
(置顶)开发中常用功能知识点笔记
(置顶)收藏优秀分享文章集合
PHP加密解密算法(Discuz!经典代码)
PHP 获取数组第一个元素或最后一个值
Nginx配置 nginx.conf 文件中常用配
MySQL错误日志 [Warning] IP ad
Redis持久化:快照(RDB)和AOF简解
浅析SQLmap
随机文章
友情链接
官方手册
thinkphp
php扩展
Linux命令
lnmp
PHP中文网
鸟哥Linux私房
Nginx中文文档
json格式化
Redis手册
composer中文文档
CentOS下载
流程图
VPN代理
菜鸟网
奇淼教程
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册