Использование $ HTTP_RAW_POST_DATA

Я ищу точное определение этого, но все еще не могу найти определение удовлетворения.
Я использовал nusoap webservice, есть строка

$server->service($HTTP_RAW_POST_DATA);

Может кто-нибудь, пожалуйста, дайте мне знать, какова цель $ HTTP_RAW_POST_DATA здесь.
Согласно моему исследованию, это для сбора необработанных данных. но я не удовлетворен ответом. Какое точное значение необработанных почтовых данных.

1

Решение

HTTP-запрос состоит из двух частей. Набор заголовков и тела.

Заголовки включают в себя такие вещи, как запрашиваемый URL-адрес и кэширующие помощники управления (например, «У меня есть версия со вчерашнего дня, дайте мне новую, только если есть изменения, хорошо?»).

Тело может появиться или не появиться в зависимости от типа запроса. У запросов POST есть тела.

Тело может быть в любом формате, который нравится клиенту. Один из заголовков сообщит серверу, что это за формат.

Существует несколько форматов, используемых HTML-формами, и PHP знает, как их анализировать и помещать данные в $ _POST.

Если данные представлены в другом формате, например, JSON, или если данные не соответствуют особенностям PHP (например, правила наличия [] на конце ключей с тем же именем), возможно, вы захотите получить доступ к данным непосредственно, так что вы можете разобрать его самостоятельно. Это необработанные данные POST.

  • $_POST содержит URL-кодированные (application / www-url-кодированные) переменные, которые публикуются в вашем скрипте, а PHP декодирует их для вас. Вы используете его, когда имеете дело с данными HTML FORM.

  • file_get_contents("php://input") — получает необработанные данные POST, и вам нужно использовать это, когда вы пишете API и нуждаетесь в вводе XML / JSON / …, который не может быть декодирован в $ _POST PHP.

  • $HTTP_RAW_POST_DATA — в теории это то же самое, что и выше, но зависит от php.ini. и больше не доступен в PHP 7

2

Другие решения

HTTP-сообщение состоит из серии заголовков и тела (которое может быть обязательным / необязательным / запрещенным в зависимости от заголовков).

Для URL http://stackoverflow.com/questions/43519007/usage-of-http-raw-post-data, тело — это HTML-код, используемый для создания документа, который вы читаете.

Если вы сделаете запрос GET для него, то тело запроса не будет.

Если вы сделаете запрос POST, то будет. Если вы отправите форму, она будет закодирована с использованием одного из форматов, которые вы можете указать с помощью enctype приписывать.

Обычно в PHP, когда вы хотите работать с этими данными, вы должны использовать $_POST который содержит содержимое после того, как тело было декодировано.

Сырое тело это тело до это было расшифровано.

0

Большую часть времени, когда мы работаем с запросами HTTP POST, мы смотрим на результат отправки формы из браузера. Это отформатирует данные стандартным способом (либо «кодированная строка запроса», либо «multipart / form-data»), который кодирует набор пар ключ-значение. PHP автоматически разбирает любые запросы в этом формате в суперглобальный массив $_POST,

Однако фактическое тело HTTP-запроса — это всего лишь фрагмент текста, и в некоторых случаях мы хотим рассматривать его как таковой. Например, запрос SOAP использует XML-документ в качестве тела запроса POST. $HTTP_RAW_POST_DATA дает вам доступ к этому тексту — он «сырой», потому что он не был обработан, он просто возвращается вам как строка.

Стоит отметить, что $HTTP_RAW_POST_DATA является старый способ доступа к этому, и правильный путь в новых версиях PHP заключается в использовании file_get_contents('php://input'); где php://input это виртуальный файл, который представляет те же необработанные данные.

0
По вопросам рекламы [email protected]