php 将'php:// input'数据合并到$ _REQUEST
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 将'php:// input'数据合并到$ _REQUEST相关的知识,希望对你有一定的参考价值。
<?php
/**
* 使用fetch异步请求数据,数据需要使用php://input来获取
* 此方法将php://input数据并入$_REQUEST
*
* @author Jason
* @DateTime 2017-12-04 13:51
* @access public
* @return array
*/
function merge_php_input() {
// 请求方法
$method = PHP_SAPI == 'cli' ? 'GET' : $_SERVER['REQUEST_METHOD'];
// php input流数据
$content = file_get_contents('php://input');
// 获取请求的content type
$contentType = $_SERVER['CONTENT_TYPE'];
if ($contentType) {
if (strpos($contentType, ';')) {
list($type) = explode(';', $contentType);
} else {
$type = $contentType;
}
$contentType = trim($type);
}
// 自动获取请求变量
switch ($method) {
case 'POST': {
if (empty($_POST) && false !== strpos($contentType, 'application/json')) {
$vars = (array) json_decode($content, true);
$_POST = $vars;
} else {
$vars = $_POST;
}
} break;
case 'PUT':
case 'DELETE':
case 'PATCH':{
if (false !== strpos($contentType, 'application/json')) {
$vars = (array) json_decode($content, true);
} else {
parse_str($content, $vars);
}
} break;
default:
$vars = [];
}
// 当前请求参数和URL地址中的参数合并
$_REQUEST = array_merge($_REQUEST, $_GET, $vars);
return $_REQUEST;
}
以上是关于php 将'php:// input'数据合并到$ _REQUEST的主要内容,如果未能解决你的问题,请参考以下文章
file_get_contents('php://input') 数据如何转换成数组
file_get_contents('php://input') 和POST的区别
file_get_contents('php://input') 和POST的区别
php中获取数据 php://input$_POST与$GLOBALS['HTTP_RAW_POST_DATA']三者的区别
input name='a.name[]' 这种form.serializeArray()传到php后台怎么取值啊?
如何用php获取某个页面中的input的csrf