Drei Möglichkeiten für PHP, POST-Daten zu erhalten
Methode eins, $_POST
$_POST oder $_REQUEST speichert die von PHP formatierten Daten in der Form key=>value .
Methode 2, verwenden Sie file_get_contents("php://input")
Für POST-Daten ohne angegebenen Inhaltstyp können Sie file_get_contents("php://input"); verwenden Holen Sie sich die Originaldaten. Tatsächlich verwenden alle Daten, die POST mit PHP empfängt, diese Methode. Unabhängig vom Inhaltstyp ist auch die Einbeziehung binärer Dateiströme möglich.
Im Vergleich zu $HTTP_RAW_POST_DATA belastet es den Speicher weniger und erfordert keine speziellen php.ini-Einstellungen.
php://input kann keine POST-Daten lesen, deren Content-Type multipart/form-data ist. Sie müssen den Wert „always_populate_raw_post_data“ in php.ini auf „On“ setzen.
php://input kann $_GET-Daten nicht lesen. Dies liegt daran, dass die $_GET-Daten als query_path in das PATH-Feld des HTTP-Anforderungsheaders geschrieben werden und nicht in den Hauptteil der http-Anforderung.
Methode drei, verwenden Sie die globale Variable $GLOBALS['HTTP_RAW_POST_DATA']
Die Originaldaten von POST werden in $GLOBALS['HTTP_RAW_POST_DATA'] gespeichert.
Aber ob die POST-Daten in $GLOBALS['HTTP_RAW_POST_DATA'] gespeichert werden, hängt von der Centent-Type-Einstellung ab. Wird der POST nur dann gespeichert, wenn PHP den Content-Type nicht erkennen kann? Daten werden unverändert in die Variable $GLOBALS['HTTP_RAW_POST_DATA'] eingefügt. Wenn Content-Type=application/x-www-form-urlencoded ist, ist die Variable leer.
Darüber hinaus können auch keine POST-Daten gelesen werden, deren Content-Type multipart/form-data ist. Sie müssen außerdem den Wert „always_populate_raw_post_data“ in php.ini auf „On“ setzen, damit PHP dies immer tut Füllen Sie die POST-Daten aus.
Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!
Ausführlichere Beispiele für die drei Methoden zum Abrufen von POST-Daten in PHP finden Sie auf der chinesischen PHP-Website für verwandte Artikel!