对于get请求,我们可以使用
将查询字符串转换为字符串parse_str($_SERVER['QUERY_STRING']);
但是对于post方法,上面的方法不起作用。是否有另一种方法可以对字符串进行查询。
答案 0 :(得分:1)
除非您从命令行运行PHP,否则PHP将使用已解析的查询值和相应的帖子正文值填充superglobal arrays $_GET
和$_POST
(以及其他)。它会自动执行此操作,因此没有理由为parse_str
显示查询字符串。
在请求中使用
application/x-www-form-urlencoded
或multipart/form-data
作为HTTP Content-Type时,通过HTTP POST方法传递给当前脚本的关联变量数组。
这是访问POST数据的首选方式。但是,您也可以访问原始帖子正文via the php://input
stream or $HTTP_RAW_POST_DATA
(后者在PHP 5.6.0中已弃用,从PHP 7.0.0起已被删除)。
引用PHP Manual on input streams:
php://input
是一个只读流,允许您从请求正文中读取原始数据。对于POST请求,最好使用php://input
而不是$HTTP_RAW_POST_DATA
,因为它不依赖于特殊的php.ini指令。此外,对于默认情况下未填充$HTTP_RAW_POST_DATA
的情况,它可能是激活always_populate_raw_post_data
的内存密集型替代方案。php://input
无法使用enctype="multipart/form-data"
。