账户中心 退出系统
开发文档 资讯·分享 技术交流 会员登录
phpGrace GSCMS 公众号系统
请求信息

请求信息获取

phpGrace 封装了 grace\http\request 类用于获取 http 请求数据。

1 获取 $_SERVER 数据

函数 : server( $key )
参数 : $key 对应 $_SERVER 数组的键名称,可选参数,默认 null 代表直接获取 $_SERVER 数组;

$_SERVER 数据详解

$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串,在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
$_SERVER['QUERY_STRING'] #查询(query)的字符串。
$_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'] #链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。
$_SERVER['HTTPS'] — 如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。
$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN'] #管理员信息
$_SERVER['SERVER_PORT'] #服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html”。
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
$_SERVER[”HTTP_X_FORWARDED_FOR”] #透过代理服务器取得客户端的真实 IP 地址
$_SERVER['HTTP_VIA'] #代理服务器IP
$_SERVER['HTTP_CLIENT_IP'] #客户端IP

演示代码

<?php
namespace grace\controller;
use grace\grace;
use grace\http\request;

class index extends grace{

    public function index(){
        $requestMethod = request::server('REQUEST_METHOD');
        echo $requestMethod;
    }

2 getHeader() 获取指定 header 数据

注意事项
header 数据名称只能使用 字母+数组+中划线!
底层转换
当我们发送 header 数据给 php 时 php 会将 header 数据名称进行转换,规则 : HTTP_ + ( 将 header 数据名称 字母大写、将中划线 - 转换为 _),如果您使用 php 原生语法获取 header 数据,格式为 $_SERVER['HTTP_转换后的数据名称'],您可以使用 getHeader 方法通过发送时候的名称获取 header 数据。
函数说明

功能 : 通过发送时的名称获取 header 数据
参数 : header 数据名称
返回 : 对应数据值或者 null

演示代码

<?php
namespace grace\controller;
use grace\grace;
use grace\http\request;

class index extends grace{

    public function index(){
        $token = request::getHeader('token');
        print_r($token);
    }

}

3 getAllHeaders() 获取全部 header 数据

数据形式 :

Array
(
    [CONTENT_LENGTH] => 0
    [HOST] => localhost
    [CONTENT_TYPE] => multipart/form-data;
    [TEST] => 22
    [TOKEN] => 111
    [CONNECTION] => keep-alive
    [USER_AGENT] => ApiPOST Runtime +https://www.apipost.cn
    [ACCEPT_LANGUAGE] => zh-CN
    [ACCEPT_ENCODING] => gzip, deflate, br
    [ACCEPT] => */*
    [ORIGIN] => http://localhost
)

演示代码

<?php
namespace grace\controller;
use grace\grace;
use grace\http\request;

class index extends grace{

    public function index(){
        $headers = request::getAllHeaders();
        print_r($headers);
    }

}