<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2021 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
declare (strict_types = 1);
namespace think;
use ArrayAccess;
use think\facade\Lang;
use think\file\UploadedFile;
use think\route\Rule;
/**
* 请求管理类
* @package think
*/
class Request implements ArrayAccess
{
/**
* 兼容PATH_INFO获取
* @var array
*/
protected $pathinfoFetch = ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'];
/**
* PATHINFO变量名 用于兼容模式
* @var string
*/
protected $varPathinfo = 's';
/**
* 请求类型
* @var string
*/
protected $varMethod = '_method';
/**
* 表单ajax伪装变量
* @var string
*/
protected $varAjax = '_ajax';
/**
* 表单pjax伪装变量
* @var string
*/
protected $varPjax = '_pjax';
/**
* 域名根
* @var string
*/
protected $rootDomain = '';
/**
* HTTPS代理标识
* @var string
*/
protected $httpsAgentName = '';
/**
* 前端代理服务器IP
* @var array
*/
protected $proxyServerIp = [];
/**
* 前端代理服务器真实IP头
* @var array
*/
protected $proxyServerIpHeader = ['HTTP_X_REAL_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'HTTP_X_CLIENT_IP', 'HTTP_X_CLUSTER_CLIENT_IP'];
/**
* 请求类型
* @var string
*/
protected $method;
/**
* 域名(含协议及端口)
* @var string
*/
protected $domain;
/**
* HOST(含端口)
* @var string
*/
protected $host;
/**
* 子域名
* @var string
*/
protected $subDomain;
/**
* 泛域名
* @var string
*/
protected $panDomain;
/**
* 当前URL地址
* @var string
*/
protected $url;
/**
* 基础URL
* @var string
*/
protected $baseUrl;
/**
* 当前执行的文件
* @var string
*/
protected $baseFile;
/**
* 访问的ROOT地址
* @var string
*/
protected $root;
/**
* pathinfo
* @var string
*/
protected $pathinfo;
/**
* pathinfo(不含后缀)
* @var string
*/
protected $path;
/**
* 当前请求的IP地址
* @var string
*/
protected $realIP;
/**
* 当前控制器名
* @var string
*/
protected $controller;
/**
* 当前操作名
* @var string
*/
protected $action;
/**
* 当前请求参数
* @var array
*/
protected $param = [];
/**
* 当前GET参数
* @var array
*/
protected $get = [];
/**
* 当前POST参数
* @var array
*/
protected $post = [];
/**
* 当前REQUEST参数
* @var array
*/
protected $request = [];
/**
* 当前路由对象
* @var Rule
*/
protected $rule;
/**
* 当前ROUTE参数
* @var array
*/
protected $route = [];
/**
* 中间件传递的参数
* @var array
*/
protected $middleware = [];
/**
* 当前PUT参数
* @var array
*/
protected $put;
/**
* SESSION对象
* @var Session
*/
protected $session;
/**
* COOKIE数据
* @var array
*/
protected $cookie = [];
/**
* ENV对象
* @var Env
*/
protected $env;
/**
* 当前SERVER参数
* @var array
*/
protected $server = [];
/**
* 当前FILE参数
* @var array
*/
protected $file = [];
/**
* 当前HEADER参数
* @var array
*/
protected $header = [];
/**
* 资源类型定义
* @var array
*/
protected $mimeType = [
'xml' => 'application/xml,text/xml,application/x-xml',
'json' => 'application/json,text/x-json,application/jsonrequest,text/json',
'js' => 'text/javascript,application/javascript,application/x-javascript',
'css' => 'text/css',
'rss' => 'application/rss+xml',
'yaml' => 'application/x-yaml,text/yaml',
'atom' => 'application/atom+xml',
'pdf' => 'application/pdf',
'text' => 'text/plain',
'image' => 'image/png,image/jpg,image/jpeg,image/pjpeg,image/gif,image/webp,image/*',
'csv' => 'text/csv',
'html' => 'text/html,application/xhtml+xml,*/*',
];
/**
* 当前请求内容
* @var string
*/
protected $content;
/**
* 全局过滤规则
* @var array
*/
protected $filter;
/**
* php://input内容
* @var string
*/
// php://input
protected $input;
/**
* 请求安全Key
* @var string
*/
protected $secureKey;
/**
* 是否合并Param
* @var bool
*/
protected $mergeParam = false;
/**
* 架构函数
* @access public
*/
public function __construct()
{
// 保存 php://input
$this->input = file_get_contents('php://input');
}
public static function __make(App $app)
{
$request = new static();
if (function_exists('apache_request_headers') && $result = apache_request_headers()) {
$header = $result;
} else {
$header = [];
$server = $_SERVER;
foreach ($server as $key => $val) {
if (0 === strpos($key, 'HTTP_')) {
$key = str_replace('_', '-', strtolower(substr($key, 5)));
$header[$key] = $val;
}
}
if (isset($server['CONTENT_TYPE'])) {
$header['content-type'] = $server['CONTENT_TYPE'];
}
if (isset($server['CONTENT_LENGTH'])) {
$header['content-length'] = $server['CONTENT_LENGTH'];
}
}
$request->header = array_change_key_case($header);
$request->server = $_SERVER;
$request->env = $app->env;
$inputData = $request->getInputData($request->input);
$request->get = $_GET;
$request->post = $_POST ?: $inputData;
$request->put = $inputData;
$request->request = $_REQUEST;
$request->cookie = $_COOKIE;
$request->file = $_FILES ?? [];
return $request;
}
/**
* 设置当前包含协议的域名
* @access public
* @param string $domain 域名
* @return $this
*/
public function setDomain(string $domain)
{
$this->domain = $domain;
return $this;
}
/**
* 获取当前包含协议的域名
* @access public
* @param bool $port 是否需要去除端口号
* @return string
*/
public function domain(bool $port = false): string
{
return $this->scheme() . '://' . $this->host($port);
}
/**
* 获取当前根域名
* @access public
* @return string
*/
public function rootDomain(): string
{
$root = $this->rootDomain;
if (!$root) {
$item = explode('.', $this->host());
$count = count($item);
$root = $count > 1 ? $item[$count - 2] . '.' . $item[$count - 1] : $item[0];
}
return $root;
}
/**
* 设置当前泛域名的值
* @access public
* @param string $domain 域名
* @
没有合适的资源?快使用搜索试试~ 我知道了~
微信公众号多域名回调系统,全面微信消息转发功能,附带系统搭建教程
共431个文件
php:329个
md:16个
html:14个
2 下载量 58 浏览量
2024-01-19
00:20:50
上传
评论
收藏 1.05MB ZIP 举报
温馨提示
微信公众号多域名回调系统,全面微信消息转发功能,附带系统搭建教程
资源推荐
资源详情
资源评论
收起资源包目录
微信公众号多域名回调系统,全面微信消息转发功能,附带系统搭建教程 (431个子文件)
bootstrap-table.css 9KB
admin.css 797B
phpunit.xml.dist 826B
phpunit.xml.dist 559B
.editorconfig 271B
.example.env 279B
hiddeninput.exe 9KB
.gitattributes 70B
.gitignore 104B
.gitignore 52B
.gitignore 37B
.gitignore 29B
.gitignore 27B
.gitignore 13B
.gitignore 13B
.gitignore 6B
.gitignore 6B
.htaccess 224B
.htaccess 13B
index.html 11KB
index.html 10KB
servergroup.html 9KB
wxtoken.html 8KB
serveritem.html 6KB
login.html 5KB
doc.html 5KB
domain.html 5KB
404.html 4KB
layout.html 3KB
record.html 3KB
index.html 2KB
set.html 2KB
error.html 859B
关注公众号省赚信息,免费开通三年会员.jpg 41KB
jquery.particleground.min.js 10KB
custom.js 3KB
installed.json 19KB
composer.json 1KB
composer.json 902B
composer.json 848B
composer.json 720B
composer.json 687B
composer.json 626B
composer.json 562B
composer.json 559B
composer.json 552B
composer.json 418B
composer.json 395B
LICENSE 11KB
LICENSE 11KB
LICENSE 11KB
LICENSE 11KB
LICENSE 2KB
LICENSE 1KB
LICENSE 1KB
LICENSE 1KB
LICENSE 1KB
LICENSE 1KB
PSR7-Interfaces.md 9KB
PSR7-Usage.md 5KB
CONTRIBUTING.md 4KB
README.md 2KB
README.md 2KB
README.md 1KB
LICENSE.md 1KB
CHANGELOG.md 1KB
README.md 931B
README.md 767B
README.md 677B
README.md 662B
README.md 578B
README.md 563B
README.md 508B
README.md 215B
Request.php 54KB
PDOConnection.php 52KB
Template.php 47KB
Validate.php 46KB
Builder.php 42KB
BaseQuery.php 36KB
Mongo.php 33KB
RelationShip.php 26KB
Model.php 25KB
Cx.php 24KB
Route.php 24KB
Rule.php 23KB
Console.php 23KB
Mongo.php 21KB
helper.php 18KB
BelongsToMany.php 18KB
Admin.php 18KB
Mongo.php 18KB
Attribute.php 18KB
WhereQuery.php 16KB
Collection.php 16KB
ModelRelationQuery.php 16KB
ClassLoader.php 16KB
Mysql.php 16KB
InstalledVersions.php 16KB
Arr.php 16KB
共 431 条
- 1
- 2
- 3
- 4
- 5
资源评论
行动之上
- 粉丝: 2017
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- aubio 是一组算法和工具,用于标记和变换音乐和声音 它扫描或监听音频信号,并尝试识别音乐事件 例如,当鼓被击打时,它能检测到
- 快速的安装系统的过程G800和FG的系统,系统地开发开发一个系统所需要的网络,很好的系统,是优化过的系统
- 华为OD2024年机考笔试题(Java.ver),格式为:OD2024Xn,X为试卷库名,n为试题序号,例如OD2024C2为C
- aubio 是一组算法和工具,用于标记和变换音乐和声音 它扫描或监听音频信号,并尝试识别音乐事件 例如,当鼓被击打时,它能检测到
- 电子通信设计资料555组成的脉冲整形电路(施密特触发器)
- 《Python-舌象/舌苔检测(用于检测输入图像是否为面部/伸舌头/翘舌头)》+源代码
- .NET连接GBase CSDK包,ODBC【clientsdk-3.0.0-1-93e040-WIN2003-x86-64】
- 基于springboot+vue实现的在线考试系统+源代码+文档
- Umi-ocr文字识别
- SPview IV.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功