Heim > Backend-Entwicklung > PHP-Tutorial > Wie greife ich in PHP auf den JSON-POST-Anfragetext zu?

Wie greife ich in PHP auf den JSON-POST-Anfragetext zu?

Susan Sarandon
Freigeben: 2024-12-27 06:48:17
Original
107 Leute haben es durchsucht

How to Access JSON POST Request Body in PHP?

Wie erhalte ich den POST-Anfragetext als JSON in PHP?

Bei der Übermittlung von JSON-Daten als POST an eine PHP-Seite kann der Zugriff auf deren Wert erfolgen scheinen eine Herausforderung zu sein, da var_dump($_POST); gibt ein leeres Array zurück. Um die JSON-Nutzlast abzurufen, ist ein spezieller Eingabestream erforderlich.

Verwenden von php://input oder STDIN

So greifen Sie auf den rohen Entitätstext einer POST-Anfrage zu:

$entityBody = file_get_contents('php://input');
Nach dem Login kopieren

Alternativ kann man verwenden STDIN:

$entityBody = stream_get_contents(STDIN);
Nach dem Login kopieren

php://input Überlegungen

  • php://input ist ein schreibgeschützter Stream.
  • Es sollte anstelle von $HTTP_RAW_POST_DATA verwendet werden, da es zuverlässiger ist und nicht von php.ini abhängt Anweisungen.
  • Php://input wird für enctype="multipart/form-data"-Anfragen nicht unterstützt.

Erhaltung der Lesbarkeit von php://input

Da php://input nicht durchsuchbar ist, kann es nur einmal gelesen werden. Um den Eingabestrom beizubehalten:

function detectRequestBody() {
    $rawInput = fopen('php://input', 'r');
    $tempStream = fopen('php://temp', 'r+');
    stream_copy_to_stream($rawInput, $tempStream);
    rewind($tempStream);

    return $tempStream;
}
Nach dem Login kopieren

Verarbeitung mehrteiliger/Formulardatenanfragen

Für mehrteilige/Formulardatenanfragen ist die JSON-Nutzlast direkt im verfügbar $_POST superglobal.

Das obige ist der detaillierte Inhalt vonWie greife ich in PHP auf den JSON-POST-Anfragetext zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage