在PHP中,request通常指的是HTTP请求。HTTP请求是客户端(如浏览器)向服务器发送的请求,以获取或提交数据。PHP提供了多种方式来访问和处理这些请求数据。
$_GET$_GET 是一个超全局数组,用于收集通过URL参数(查询字符串)传递的数据。例如,如果URL是 http://example.com/index.php?name=John&age=30,你可以通过 $_GET['name'] 和 $_GET['age'] 来获取这些值。
$name = $_GET['name']; // John
$age = $_GET['age']; // 30
$_POST$_POST 是一个超全局数组,用于收集通过HTTP POST方法提交的表单数据。例如,如果表单通过POST方法提交了 name 和 age 字段,你可以通过 $_POST['name'] 和 $_POST['age'] 来获取这些值。
$name = $_POST['name']; // John
$age = $_POST['age']; // 30
$_REQUEST$_REQUEST 是一个超全局数组,包含了 $_GET、$_POST 和 $_COOKIE 的数据。它通常用于处理不确定是通过GET还是POST方法提交的数据。
$name = $_REQUEST['name']; // John
$age = $_REQUEST['age']; // 30
$_SERVER$_SERVER 是一个超全局数组,包含了服务器和执行环境的信息。例如,你可以通过 $_SERVER['REQUEST_METHOD'] 来获取当前请求的HTTP方法(GET、POST等)。
$method = $_SERVER['REQUEST_METHOD']; // GET or POST
php://inputphp://input 是一个只读流,允许你读取原始的POST数据。这对于处理JSON或XML格式的请求数据非常有用。
$rawData = file_get_contents("php://input");
$data = json_decode($rawData, true);
$_FILES$_FILES 是一个超全局数组,用于处理通过HTTP POST方法上传的文件。
$file = $_FILES['file'];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $_POST['name'];
$age = $_POST['age'];
echo "Name: $name, Age: $age";
} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
$name = $_GET['name'];
$age = $_GET['age'];
echo "Name: $name, Age: $age";
}
$_GET:用于获取URL参数。$_POST:用于获取通过POST方法提交的表单数据。$_REQUEST:用于获取GET、POST和COOKIE数据。$_SERVER:用于获取服务器和执行环境信息。php://input:用于读取原始的POST数据。$_FILES:用于处理上传的文件。这些超全局变量和流是PHP中处理HTTP请求的基础工具。