$ _POST против $ HTTP_RAW_POST_DATA vs file_get_contents (php: // input)?

Возможный дубликат:
В чем разница между POST и исходным POST в PHP?

Для лучшего понимания, я был бы признателен, если бы вы объяснили, какие фундаментальные различия между $ _POST , $ HTTP_RAW_POST_DATA и file_get_contents (php: // input) .

Когда использовать что и зачем?

Related of "$ _POST против $ HTTP_RAW_POST_DATA vs file_get_contents (php: // input)?"

  1. $ _POST содержит URL-кодированные (прикладные / www-url-закодированные) переменные, которые отправляются на ваш скрипт, и PHP их декодирует для вас. Вы используете это, когда имеете дело с данными HTML FORM .
  2. file_get_contents ("php: // input") – получает необработанные данные POST, и вам нужно использовать это при написании API-интерфейсов и необходимости ввода XML / JSON / …, который не может быть декодирован до $ _POST с помощью PHP.
  3. $ HTTP_RAW_POST_DATA – теоретически это то же самое, что и выше, но зависит от php.ini .

Я всегда использую метод # 2 вместо # 3, когда мне нужен вход без приложения / www-url-encoded .