PHP 获取 POST URL 的详解64


在 PHP 中,POST 请求是将请求数据放置在请求的主体中的 HTTP 请求方法。当客户端(例如浏览器)向服务器发送 POST 请求时,它会将数据以 "key=value" 对的形式打包,这些对会被发送到服务器脚本处理。

在 PHP 中,可以通过 $_POST 超全局数组访问 POST 数据。该数组包含所有已提交数据的键值对。要获取 POST 请求的 URL,需要使用 $_POST['url'],其中 'url' 是对应于 POST 请求中 URL 参数的键。

例如,如果客户端发送以下 POST 请求:```
POST / HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
url=
```

则可以在 PHP 脚本中使用以下代码获取 POST 请求的 URL:```php
$url = $_POST['url'];
```

以下是一些获取 POST URL 的其他方法:* 使用 PHP 的 input() 方法:该方法适用于 PHP 5.6 及更高版本,它返回一个包含已提交数据的流。可以使用此流来访问 POST URL。
```php
$data = file_get_contents('php://input');
$url = parse_url($data, PHP_URL_QUERY)['url'];
```
* 使用 PHP 的 parse_str() 函数:该函数将查询字符串转换为键值对数组。可以使用此数组来访问 POST URL。
```php
parse_str(file_get_contents('php://input'), $data);
$url = $data['url'];
```
* 使用 PHP 的 getallheaders() 函数:该函数返回所有 HTTP 头信息。可以使用此信息来访问 POST 请求的 URL。
```php
$headers = getallheaders();
$url = $headers['Referer'];
```

需要注意的是,getallheaders() 函数返回的 Referer 头信息可能不可靠,因为它可能会被伪造。因此,建议使用其他方法来获取 POST URL。

在实践中,使用 $_POST 超全局数组通常是获取 POST URL 的最简单和最可靠的方法。其他方法可能需要使用更高级的技术,并且在某些情况下可能不可靠。

2024-11-08


上一篇:PHP 数组键存在检查:完整指南

下一篇:PHP 数组中值相加的全面指南