$_SERVER总结

一直对$_SERVER 这个超全局变量比较困惑。今天稍微总结了一下。带有缩进的是比较常见而且重要的。

<?php

#    预定义变量包括超全局变量,并且大部分的与定义变量都是超全局变量

    //获取当前执行脚本的文件名
    echo "PHP_SELF : " . $_SERVER['PHP_SELF'] . "<br />";

//获取服务器使用的CGI规范的版本
echo "GATEWAY_INTERFACE : " . $_SERVER['GATEWAY_INTERFACE'] . "<br />";

    //获取当前脚本所在服务器的ID
    echo "SERVER_ADDR : " . $_SERVER['SERVER_ADDR'] . "<br />";

    //获取服务器的主机名
    echo "SERVER_NAME : " . $_SERVER['SERVER_NAME'] . "<br />";

//获取服务器标识字符串,在响应请求时的头信息中表现
echo "SERVER_SOFTWARE : " . $_SERVER['SERVER_SOFTWARE'] . "<br />";

//请求页面时的通信协议版本
echo "SERVER_PROTOCOL : " . $_SERVER['SERVER_PROTOCOL'] . "<br />";

    //访问页面的方法 GET POST HEAD PUT
    echo "REQUEST_METHOD : " . $_SERVER['REQUEST_METHOD'] . "<br />";

//请求开始时的时间戳
echo "REQUEST_TIME : " . $_SERVER['REQUEST_TIME'] . "<br />";

//请求开始时的时间戳,含有微秒级别
echo "REQUEST_TIME_FLOAT : " . $_SERVER['REQUEST_TIME_FLOAT'] . "<br />";

    //要查询的字符串,如果有的话,通过字符串进行页面访问
    echo "QUERY_STRING : " . $_SERVER['QUERY_STRING'] . "<br />";

//脚本的文档根目录,需要在服务器配置文件中定义
echo "DOCUMENT_ROOT : " . $_SERVER['DOCUMENT_ROOT'] . "<br />";

//当前请求头的accept的内容
echo "HTTP_ACCEPT : " . $_SERVER['HTTP_ACCEPT'] . "<br />";

//当前请求头accept-charset的内容,比方说 iso-8859-1,*,utf-8
echo "HTTP_ACCEPT_CHARSET : " . $_SERVER['HTTP_ACCEPT_CHARSET'] . "<br />";

//当前请求头accept-encoding内容,比方说gzip
echo "HTTP_ACCEPT_ENCODING : " . $_SERVER['HTTP_ACCEPT_ENCODING'] . "<br />";

//当前请求头的accept-language内容 比方说en
echo "HTTP_ACCEPT_LANGUAGE : " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "<br />";

//当前请求头中的connection内容
echo "HTTP_CONNECTION : " . $_SERVER['HTTP_CONNECTION'] . "<br />";

    //当前请求头中的host内容,获取域名或者主机地址
    echo "HTTP_HOST : " . $_SERVER['HTTP_HOST'] . "<br />";

    //引导用户到当前页的上一页地址,也就是referer头。可以知道用户从哪个页面到达这里
    //在防盗链中我们可以利用这一个选项。这个选项由user agent设置决定。但是并不是所有的用户代理都会设置这一个选项
    //甚至还有擅自修改referer头信息的用户,实现反防盗链功能。所以这一个选项并不可信
    echo "HTTP_REFERER : " . $_SERVER['HTTP_REFERER'] . "<br />";

//查看到用户的代理信息。当然我们可以通过get_browser()来使用该值
echo "HTTP_USER_AGENT : " . $_SERVER['HTTP_USER_AGENT'] . "<br />";

    //判断用户是否是通过HTTPS协议被访问的
    echo "HTTPS : " . $_SERVER['HTTPS'] . "<br />";

    //获取当前用户的IP地址
    echo "REMOTE_ADDR : " . $_SERVER['REMOTE_ADDR'] . "<br />";

    //获取用户的主机名
    echo "REMOTE_HOST : " . $_SERVER['REMOTE_HOST'] . "<br />";

    //获取用户的端口号
    echo "REMOTE_PORT : " . $_SERVER['REMOTE_PORT'] . "<br />";

    //经过了验证的用户
    echo "REMOTE_USER : " . $_SERVER['REMOTE_USER'] . "<br />";

    //经过验证的用户,在页面内重定向
    echo "REDIRECT_REMOTE_USER : " . $_SERVER['REDIRECT_REMOTE_USER'] . "<br />";

    //当前只想脚本的绝对路径
    echo "SCRIPT_FILENAME : " . $_SERVER['SCRIPT_FILENAME'] . "<br />";

//Apache服务器配置文件中的server_admin的参数
echo "SERVER_ADMIN : " . $_SERVER['SERVER_ADMIN'] . "<br />";

//web服务器的端口,默认为80
echo "SERVER_PORT : " . $_SERVER['SERVER_PORT'] . "<br />";

//包含服务器版本和虚拟主机名的字符串
echo "SERVER_SIGNATURE : " . $_SERVER['SERVER_SIGNATURE'] . "<br />";

//当前脚本的系统文件的基本目录
echo "PATH_TRANSLATED : " . $_SERVER['PATH_TRANSLATED'] . "<br />";

    //当前脚本的路径,这个页面在需要指向自己的时候非常有用。__FILE__常量包含当前脚本的完整路径和文件名
    echo "SCRIPT_NAME : " . $_SERVER['SCRIPT_NAME'] . "<br />";

    //URI用来指定要访问的页面
    echo "REQUEST_URI : " . $_SERVER['REQUEST_URI'] . "<br />";

//当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization” HTTP 头内容(以便作进一步的认证操作)。
echo "PHP_AUTH_DIGEST : " . $_SERVER['PHP_AUTH_DIGEST'] . "<br />";

//当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
echo "PHP_AUTH_USER : " . $_SERVER['PHP_AUTH_USER'] . "<br />";

//当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
echo "PHP_AUTH_PW : " . $_SERVER['PHP_AUTH_PW'] . "<br />";

//当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
echo "AUTH_TYPE : " . $_SERVER['AUTH_TYPE'] . "<br />";

//包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。
echo "PATH_INFO : " . $_SERVER['PATH_INFO'] . "<br />";

//在被 PHP 处理之前,“ PATH_INFO ” 的原始版本
echo "ORIG_PATH_INFO : " . $_SERVER['ORIG_PATH_INFO'] . "<br />";


下面是常见的总结:


$_SERVE 是一个博涵了头信息(header) 路径(path) 以及脚本位置的信息的数组。

$_SERVER['HTTP_HOST'] 域名或者主机名
$_SERVER['PHP_SELF'] 当前执行脚本的文件名
$_SERVER["QUERY_STRING"] 网页发送的参数
$_SERVER['REQUEST_URI'] 访问的页面的地址 (等于上面两个相加)

http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']                              完整的url
http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']    完整的url
http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]  包含端口号的完整的url

$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);     //只获取路径,不要文件名以及参数


$_SERVER['SERVER_ADDR'] 获取服务器的IP地址
$_SERVER['SERVER_NAME'] 获取服务器的主机名

$_SERVER['HTTPS'] 如果当前脚本是通过HTTP协议被访问的,就会返回一个非空的值

$_SERVER['REMOTE_HOST'] 当前浏览用户的主机名
$_SERVER['REMOTE_ADDR'] 当前浏览用户的IP地址


$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径
$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['QUERY_ADDR'] 查询的字符串的内容
$_SERVER['HTTP_REFERER'] 上一页的url地址



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值