Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich ordnungsgemäß auf JSON-Daten aus PHP-POST-Anfragen zu?

Wie greife ich ordnungsgemäß auf JSON-Daten aus PHP-POST-Anfragen zu?

Barbara Streisand
Barbara StreisandOriginal
2024-12-23 17:26:10670Durchsuche

How to Properly Access JSON Data from PHP POST Requests?

So extrahieren Sie JSON-Daten aus einer PHP-POST-Anfrage

Beim Senden von JSON-Daten an ein PHP-Skript über eine POST-Anfrage, Zugriff auf den Textkörper kann verwirrend sein. Mit var_dump($_POST); gibt ein leeres Array zurück.

Lösung: Verwendung von php://input

Um auf den Anfragetext zuzugreifen, stellt PHP php://input:

$entityBody = file_get_contents('php://input');
Dieser Stream enthält die POST-Rohdaten. Sie können auch stream_get_contents(STDIN) verwenden, da STDIN ein Alias ​​für php://input ist.

注意事项:

    php://input ist nicht durchsuchbar, daher kann es nur einmal gelesen werden.
  • Bei großen Datensätzen sollten Sie eine Pufferung in Betracht ziehen es mit einem temporären Stream, wie zum Beispiel:
function detectRequestBody() {
    $rawInput = fopen('php://input', 'r');
    $tempStream = fopen('php://temp', 'r+');
    stream_copy_to_stream($rawInput, $tempStream);
    rewind($tempStream);

    return $tempStream;
}

Einschränkungen:

php://input ist für Anfragen mit Content-Type: multipart nicht verfügbar /form-data, da PHP mehrteilige Daten verarbeitet nativ.

Beispiel:

Um auf das JSON-Objekt {a:1} in Ihrem PHP-Code zuzugreifen, verwenden Sie:

Das obige ist der detaillierte Inhalt vonWie greife ich ordnungsgemäß auf JSON-Daten aus PHP-POST-Anfragen zu?. 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