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');
Alternativ kann man verwenden STDIN:
$entityBody = stream_get_contents(STDIN);
php://input Überlegungen
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; }
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!