$ _POST vs. $ HTTP_RAW_POST_DATA vs file_get_contents(php:// input)?

Mic*_*ael 15 php

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

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

何时使用哪个,为什么?

Cod*_*gry 25

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

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