PHP 会自动对 $_POST 执行 urldecode() 吗?
Does PHP automatically do urldecode() on $_POST?
根据 http://php.net/manual/en/function.urldecode.php,PHP 在 $_GET
和 $_REQUEST
(包含 $_POST
)上执行 urldecode()
。
但是直接调用$_POST
是不是已经解码了?
是的,您通过 $_GET
和 $_POST
访问的所有参数都已解码。
urldecode()
文档没有提到 $_POST
的原因是 POST 数据可能一开始就没有被 URL 编码。取决于POST数据是以application/x-www-form-urlencoded
格式提交还是multipart/form-data
格式提交。
但这一切对应用程序来说都是透明的。
$_GET
的文档确实明确提到了这一点。
Note:
The GET variables are passed through urldecode()
.
根据 http://php.net/manual/en/function.urldecode.php,PHP 在 $_GET
和 $_REQUEST
(包含 $_POST
)上执行 urldecode()
。
但是直接调用$_POST
是不是已经解码了?
是的,您通过 $_GET
和 $_POST
访问的所有参数都已解码。
urldecode()
文档没有提到 $_POST
的原因是 POST 数据可能一开始就没有被 URL 编码。取决于POST数据是以application/x-www-form-urlencoded
格式提交还是multipart/form-data
格式提交。
但这一切对应用程序来说都是透明的。
$_GET
的文档确实明确提到了这一点。
Note:
The GET variables are passed throughurldecode()
.