Mehrere Möglichkeiten für PHP, Post-Parameter zu erhalten
Der von PHP standardmäßig erkannte Datentyp ist application/x -www .form-urlencoded Standarddatentyp.
1. $_POST['paramName'] Nur wenn der Inhaltstyp application/x-www-form-urlencoded oder multipart/form-data ist, ändert PHP den entsprechenden Teil des HTTP-Anforderungspakets Körperdaten werden in die globale Variable $_POST gefüllt und PHP ignoriert andere Situationen. Die in das Array $_POST eingegebenen Daten sind das Ergebnis der Analyse von urldecode().
2. file_get_contents("php://input") eignet sich für die meisten Arten von Inhalten.
php://input ermöglicht das Lesen der Rohdaten von POST. Es belastet den Speicher weniger als $HTTP_RAW_POST_DATA und erfordert keine speziellen php.ini-Einstellungen. php://input kann nicht mit enctype="multipart/form-data" verwendet werden.
3. $GLOBALS['HTTP_RAW_POST_DATA'] generiert immer die Variable $HTTP_RAW_POST_DATA, die die ursprünglichen POST-Daten enthält. Diese Variable wird nur generiert, wenn Daten eines nicht erkannten MIME-Typs gefunden werden. $HTTP_RAW_POST_DATA ist für enctype="multipart/form-data"-Formulardaten nicht verfügbar.
Wenn die geposteten Daten von PHP nicht erkannt werden, können Sie $GLOBALS['HTTP_RAW_POST_DATA'] verwenden, um sie zu empfangen, z. B. Text/XML oder Soap usw. Sie müssen 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.
Ein Blick auf die offizielle Dokumentation zeigt, dass diese Variable $HTTP_RAW_POST_DATA in höheren Versionen veraltet ist
Diese Funktion war in PHP 5.6.0 VERALTET und in PHP 7.0.0 im Allgemeinen ENTFERNT. inputsollte anstelle von $HTTP_RAW_POST_DATA verwendet werden.
Zusammenfassung:
1, Coentent-Type wird nur verwendet, wenn der Wert application/x-www-data-urlencoded und multipart/form-data ist. PHP füllt die entsprechenden Daten im http-Anforderungspaket in die globale Variable $_POST
2. Wenn der Content-Type-Typ von PHP nicht erkannt wird, werden die entsprechenden Daten im http-Anforderungspaket eingefügt die Variable $. HTTP_RAW_POST_DATA
3 Nur wenn der Coentent-Type nicht multipart/form-data ist, füllt PHP die entsprechenden Daten im http-Anforderungspaket in php://input aus, andernfalls ist dies der Fall in anderen Fällen. Die Länge der Auffüllung, angegeben durch Coentent-Length.
4. Nur wenn der Inhaltstyp application/x-www-data-urlencoded ist, stimmen die php://-Eingabedaten mit den $_POST-Daten überein.
5. php://input data ist immer dasselbe wie $HTTP_RAW_POST_DATA. Sie lesen nur Daten, deren Content-Type nicht multipart/form-data ist, aber php://input ist effizienter als $HTTP_RAW_POST_DATA . und es sind keine besonderen Einstellungen für php.ini erforderlich
6 PHP füllt den query_path-Teil des PATH-Felds in die globale Variable $_GET aus. Normalerweise ist der Hauptteil einer von der GET-Methode übermittelten http-Anfrage leer.
7, 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.
8. Wenn es sich um application/x-www-form-urlencoded und multipart/form-data handelt, verwenden Sie $_POST; xml, application /json, Soap, use file_get_contents('php://input');
Empfohlenes Tutorial: „
PHP-TutorialDas obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit, Post-Parameter in PHP abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!