Heim  >  Artikel  >  Backend-Entwicklung  >  Wie greife ich in PHP auf die Anforderungsnutzlast zu, wenn $_POST und $_GET leer sind?

Wie greife ich in PHP auf die Anforderungsnutzlast zu, wenn $_POST und $_GET leer sind?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 16:00:04318Durchsuche

How to Access Request Payload in PHP When $_POST and $_GET Are Empty?

So greifen Sie in PHP auf die Anforderungsnutzlast zu

Bei Verwendung von ExtJS und Ajax Store können Anforderungsdaten im HTTP-Anforderungstext statt über POST- oder GET-Parameter gesendet werden. Folglich bleiben $_POST und $_GET leer.

Lösung

Auf den Anfragetext kann mit dem folgenden PHP-Code zugegriffen werden:

$request_body = file_get_contents('php://input');

Wenn die Nutzlast in JSON vorliegt Format, kann es dekodiert werden mit:

$data = json_decode($request_body);

Dadurch wird die Variable $data mit einem Array gefüllt, das die JSON-Nutzlast darstellt.

Hintergrund auf php://input

php://input ist ein schreibgeschützter Stream-Wrapper, der Zugriff auf Rohdaten aus dem Anfragetext bietet. Es ist besonders nützlich für POST-Anfragen und bietet Vorteile gegenüber $HTTP_RAW_POST_DATA in Bezug auf Speichereffizienz und Unabhängigkeit von bestimmten php.ini-Anweisungen. Beachten Sie, dass php://input nicht verfügbar ist, wenn enctype="multipart/form-data" verwendet wird.

Das obige ist der detaillierte Inhalt vonWie greife ich in PHP auf die Anforderungsnutzlast zu, wenn $_POST und $_GET leer sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn