Heim  >  Artikel  >  Backend-Entwicklung  >  Gibt es eine Möglichkeit, Post-Parameter in PHP abzurufen?

Gibt es eine Möglichkeit, Post-Parameter in PHP abzurufen?

L
LOriginal
2020-06-01 16:52:113340Durchsuche

Gibt es eine Möglichkeit, Post-Parameter in PHP abzurufen?

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-Tutorial

Das 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!

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