15

可能重复:
PHP 中的 POST 和原始 POST 有什么区别?

为了更好地理解,如果您能解释一下$_POST$HTTP_RAW_POST_DATAfile_get_contents(php://input)之间的根本区别,我将不胜感激。

什么时候使用哪个,为什么?

4

1 回答 1

27
  1. $_POST包含 URL 编码(应用程序/www-url-encoded)变量,这些变量发布到您的脚本,PHP 会为您解码它们。在处理HTML FORM数据时使用这个。
  2. file_get_contents("php://input") - 获取原始 POST 数据,当您编写 API 并需要无法被 PHP 解码为 $_POST 的XML/JSON/... 输入时,您需要使用它。
  3. $HTTP_RAW_POST_DATA - 理论上它与上面的相同,但取决于php.ini

当我需要非应用程序/www-url-encoded输入时,我总是使用方法 #2 而不是 #3。

于 2012-10-21T11:40:15.817 回答