Methode 1, $_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 von POST mit PHP empfangenen Daten 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 keine $_GET-Daten 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.
Ob die POST-Daten jedoch in $GLOBALS['HTTP_RAW_POST_DATA'] gespeichert werden, hängt von der Centent-Type-Einstellung ab. Nur wenn PHP den Content-Type nicht erkennen kann, werden die POST-Daten so eingegeben, wie sie sind Variable $GLOBALS['HTTP_RAW_POST_DATA']. Wenn Content-Type=application/x-www-form-urlencoded ist, ist die Variable leer.
Darüber hinaus können keine POST-Daten gelesen werden, deren Inhaltstyp multipart/form-data ist. Sie müssen außerdem den Wert „always_populate_raw_post_data“ in php.ini auf „On“ setzen, damit PHP die POST-Daten immer in die Variable $http_raw_post_data einträgt.