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

时间:2012-10-21 10:57:58

标签: php

  

可能重复:
  What’s the difference between POST and raw POST in PHP at all?

为了更好地理解,如果您能解释 $ _ POST $ HTTP_RAW_POST_DATA file_get_contents(php:/)之间的根本区别,我将不胜感激。 /输入)

何时使用,为什么?

1 个答案:

答案 0 :(得分:24)

  1. $ _ POST 包含已发布到您的脚本的URL编码的(application / www-url-encoded)变量,PHP会为您解码这些变量。您在处理 HTML FORM 数据时使用此功能。
  2. file_get_contents(“php:// input”) - 获取原始POST数据,您需要在编写API时使用它,并且需要 XML / JSON / ... input < / strong>无法通过PHP解码为$ _POST。
  3. $ HTTP_RAW_POST_DATA - 理论上它与上述相同,但取决于 php.ini
  4. 当我需要非 application / www-url-encoded 输入时,我总是使用方法#2而不是#3。