zoukankan      html  css  js  c++  java
  • PHP详解$_SEVER常用变量

    $_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言
    $_SERVER['HTTP_ACCEPT'] //当前请求的Accept头部的内容,例如text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    $_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:“iso-8859-1,*,utf-8”。 
    $_SERVER['HTTP_ACCEPT_ENCODING'] //当前请求的 Accept-Encoding: 头部的内容。 例如 gzip, deflate, sdch
    $_SERVER['HTTP_CONNECTION'] //当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。 
    $_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容。 一般是域名或者IP地址加端口。例如 127.0.0.1:8001
    $_SERVER['HTTP_REFERER'] //前一页面的URL,由用户代理决定.并不是所有的用户代理都会设置该项,有的还提供了修改HTTP_REFERER的功能.简言之,该值并不可信
    $_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。 
    $_SERVER['HTTPS']//如果通过https访问,则被设为一个非空的值(on),否则返回off 
    
    $_SERVER['REMOTE_ADDR'] //客户端IP地址
    $_SERVER['REMOTE_HOST'] //当前用户主机名
    $_SERVER['REMOTE_PORT'] //客户端请求端口
    
    $_SERVER['REQUEST_URI'] //URL域名和端口后面的路径地址 
    $_SERVER['REQUEST_TIME_FLOAT'] #请求开始时的时间戳,微秒级别的精准度。 自 PHP 5.4.0 开始生效。 例如 1469758054.027
    $_SERVER['REQUEST_TIME'] #请求开始时的时间戳。从 PHP 5.1.0 起可用。 例如 1469758054
    $_SERVER['REQUEST_METHOD']//访问页面时的请求方法 包括 GET POST HEAD PUT
    
    $_SERVER['SERVER_NAME'] //当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。 
    $_SERVER['SERVER_SOFTWARE'] //服务器标识的字串。例如 Apache/2.4.6 (CentOS) PHP/5.4.16
    $_SERVER['SERVER_PROTOCOL'] //请求页面时通信协议的名称和版本。例如 HTTP/1.1
    $_SERVER['SERVER_ADMIN'] #该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。
    $_SERVER['SERVER_PORT'] #服务器所使用的端口 
    $_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。 
    
    $_SERVER['argv'] //传递给该脚本的参数的数组.当脚本以命令行方式运行时.argv变量传递给程序C语言样式的命令行参数.当通过GET方式调用时.
    $_SERVER['argc'] //包含命令行模式下传递给该脚本的参数的数目(如果运行在命令行模式下)。
    $_SERVER['PHP_SELF']//正在执行脚本的文件名,如果是类似于laravel框架,就是大入口文件index.php
    $_SERVER['GATEWAY_INTERFACE']//CGI 规范的版本。 例如 CGI/1.1
    $_SERVER['QUERY_STRING'] //查询(query)的字符串。 通过GET方式在URL中的参数
    $_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录,绝对路径
    $_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。 
    $_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。 
    $_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。 

    常见应用

    获取客户端IP地址

    /** 来自thinkPHP
     * 获取客户端IP地址
     * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
     * @param boolean $adv 是否进行高级模式获取(有可能被伪装) 
     * @return mixed
     */
    function get_client_ip($type = 0,$adv=false) {
        $type       =  $type ? 1 : 0;
        static $ip  =   NULL;
        if ($ip !== NULL) return $ip[$type];
        if($adv){
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $arr    =   explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
                $pos    =   array_search('unknown',$arr);
                if(false !== $pos) unset($arr[$pos]);
                $ip     =   trim($arr[0]);
            }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
                $ip     =   $_SERVER['HTTP_CLIENT_IP'];
            }elseif (isset($_SERVER['REMOTE_ADDR'])) {
                $ip     =   $_SERVER['REMOTE_ADDR'];
            }
        }elseif (isset($_SERVER['REMOTE_ADDR'])) {
            $ip     =   $_SERVER['REMOTE_ADDR'];
        }
        // IP地址合法验证
        $long = sprintf("%u",ip2long($ip));
        $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);
        return $ip[$type];
    }
  • 相关阅读:
    2019-2020 ACM-ICPC Latin American Regional Programming Contest A- Algorithm Teaching 二分图
    2019-2020 ACM-ICPC Latin American Regional Programming Contest E
    2019-2020 ACM-ICPC Latin American Regional Programming Contest Finished F
    2019-2020 ACM-ICPC Latin American Regional Programming Contest I
    2019-2020 ACM-ICPC Latin American Regional Programming Contest L
    AcWing 119. 袭击 分治
    luogu P2340 [USACO03FALL]Cow Exhibition G 背包
    AcWing 322. 消木块 区间dp+分治
    AcWing 318. 划分大理石 多重背包三
    AcWing 316. 减操作 线性dp
  • 原文地址:https://www.cnblogs.com/xiaozong/p/5717594.html
Copyright © 2011-2022 走看看