JSON-Post-Body in PHP extrahieren
Berücksichtigen Sie die folgenden JSON-POST-Daten:
{a:1}
In PHP ist die Die Standardvariable $_POST enthält diese Daten nicht. Greifen Sie stattdessen auf den rohen HTTP-Anforderungstext zu, indem Sie Folgendes verwenden:
$entityBody = file_get_contents('php://input');
Alternativ können Sie die STDIN-Konstante verwenden:
$entityBody = stream_get_contents(STDIN);
Beachten Sie, dass php://input nicht durchsuchbar ist und nur einmal gelesen werden kann . Erwägen Sie bei großen Körpern die Verwendung einer temporären Datei, um die Stream-Ressource zu verwalten:
function detectRequestBody() { $rawInput = fopen('php://input', 'r'); $tempStream = fopen('php://temp', 'r+'); stream_copy_to_stream($rawInput, $tempStream); rewind($tempStream); return $tempStream; }
Ausnahmen treten auf, wenn in der POST-Anfrage ein „multipart/form-data“-Header angegeben wird, da PHP diese Daten bereits in die analysiert $_POST superglobal.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich einen JSON-POST-Body in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!