Inhaltsverzeichnis
Normale $_GET- und $_POST-Methoden" >Normale $_GET- und $_POST-Methoden
Die normale $_REQUEST-Methode" >Die normale $_REQUEST-Methode
register_globals-Problem" >register_globals-Problem
import_request_variables" >import_request_variables
extract" >extract
. und Leerzeichen in Parameternamen" >. und Leerzeichen in Parameternamen
Das [] im Parameternamen" >Das [] im Parameternamen
Die erweiterte php://-Eingabe" >Die erweiterte php://-Eingabe
Zusammenfassung" >Zusammenfassung
Heim Backend-Entwicklung PHP-Problem Welche Möglichkeiten gibt es, externe Parameter in PHP zu empfangen?

Welche Möglichkeiten gibt es, externe Parameter in PHP zu empfangen?

Jun 09, 2021 pm 05:17 PM
php

In diesem Artikel erfahren Sie, wie Sie externe Parameter in PHP empfangen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Welche Möglichkeiten gibt es, externe Parameter in PHP zu empfangen?

Für eine Websprache wie PHP ist der Empfang von Parametern eine sehr wichtige Fähigkeit. Schließlich müssen die vom Front-End-Formular oder der asynchronen Anforderung übergebenen Daten für die normale interaktive Anzeige abgerufen werden. Dies ist natürlich auch eine wesentliche Fähigkeit für alle Sprachen, die zur Webentwicklung geeignet sind. Heute werfen wir einen Blick auf die verschiedenen Parameterzugriffsformen in PHP.

Zuerst müssen wir eine statische Seite wie die folgende vorbereiten, die ein Formular und einen GET-Parameter in der URL bereitstellt:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="?show=1" method="post">
        姓名:<input type="text" name="name"/><br />
        电话:<input type="text" name="tel"/><br/>

        地址(省):<input type="text" name="address.prov"/><br/>
        地址(市):<input type="text" name="address city"/><br/>

        兴趣1:<input type="text" name="interest[]"/><br/>
        兴趣2:<input type="text" name="interest[]"/><br/>
        兴趣3:<input type="text" name="interest[]"/><br/>

        学历1:<input type="text" name="edu[one]"/><br/>
        学历2:<input type="text" name="edu[two]"/><br/>

        <input type="submit" value="提交" >
    </form>
</body>
</html>
Nach dem Login kopieren

Normale $_GET- und $_POST-Methoden

// 正常的GET、POST
    echo $_GET[&#39;show&#39;], &#39;<br/>&#39;; // 1
    echo $_POST[&#39;name&#39;], &#39;<br/>&#39;; // 提交的内容
Nach dem Login kopieren

Dies ist das einfachste und direkte Art und Weise, Parameter zu erhalten, werden über $_GET abgerufen, und POST-Parameter werden über $_POST abgerufen. Sie stören sich nicht.

Die normale $_REQUEST-Methode

    // 使用REQUEST
    echo $_REQUEST[&#39;show&#39;], &#39;<br/>&#39;; // 1
    echo $_REQUEST[&#39;tel&#39;], &#39;<br/>&#39;; // 提交的内容
Nach dem Login kopieren

$_REQUEST besteht darin, alle Parameter in der Anfrage abzurufen, mit Ausnahme der hochgeladenen Dateien. Mit anderen Worten: Es enthält alle Inhalte der drei Parametervariablen $_GET, $_POST und $_COOKIE (Konfiguration erforderlich, nicht standardmäßig enthalten). Hierbei ist zu beachten, dass nach PHP5.3 der von $_REQUEST akzeptierte Parametervariableninhalt durch request_order in der php.ini-Datei angegeben wird. Standardmäßig ist der Wert dieses Konfigurationsparameters GP, also GET und POST. und es gibt kein COOKIE. Ich denke, wenn Sie COOKIE möchten, müssen Sie es ändern und ein C hinzufügen.

Was passiert, wenn in $_GET und $_POST Inhalte mit demselben Namen vorhanden sind? Die Reihenfolge, in der $_REQUEST angezeigt wird, basiert auch auf der Reihenfolge der Konfigurationsparameter, von links nach rechts, wobei letztere die vorherigen abdecken. Wenn Sie beispielsweise GP konfigurieren, ist die Reihenfolge der Parameterabdeckung: POST > GET, und die endgültige Anzeige erfolgt im POST-Inhalt.

register_globals-Problem

    // register_globals 如果打开
    echo $name, &#39;<br/>&#39;; // 提交的内容
    echo $tel, &#39;<br/>&#39;; // 提交的内容
Nach dem Login kopieren

Dies ist eine unsichere Konfiguration und wird auch in der Datei php.ini konfiguriert. Seine Funktion besteht darin, die angeforderten Parameter direkt in Variablen umzuwandeln. Es besteht das Problem der globalen Variablenkontamination. Öffnen Sie sie daher nicht! ! ! Die aktuelle php.ini-Datei ist grundsätzlich standardmäßig deaktiviert.

import_request_variables

    // import_request_variables 抱歉,5.4之后已经取消了
    import_request_variables(&#39;pg&#39;, &#39;pg_&#39;);
    echo $pg_show, &#39;<br/>&#39;;
    echo $pg_name, &#39;<br/>&#39;;
Nach dem Login kopieren

Diese Funktion registriert den Inhalt der angegebenen Parametervariablen auch nach 5.4. Lassen Sie uns verstehen, was zuvor passiert ist Tun.

extract

    extract($_POST, EXTR_PREFIX_ALL, &#39;ex&#39;);
    echo $ex_name, &#39;<br/>&#39;; // 提交的内容
    echo $ex_tel, &#39;<br/>&#39;; // 提交的内容
Nach dem Login kopieren

extract wird derzeit als Methode unterstützt, die die beiden oben genannten Parametertransformationen ersetzen kann. Es liegt an uns, das Überschreiben vorhandener Variablen zu kontrollieren. Dies ist der zweite Parameter. Dadurch kann das Problem der Kontamination globaler Variablen in einer kontrollierbaren Umgebung erheblich vermieden werden. Voraussetzung ist natürlich, dass wir sie selbst verwenden. Insbesondere können Sie die Dokumentreferenz selbst finden!

. und Leerzeichen in Parameternamen

    // 参数名中的.和空格
    echo $_REQUEST[&#39;address_prov&#39;], &#39;<br/>&#39;; // 提交的内容
    echo $_REQUEST[&#39;address_city&#39;], &#39;<br/>&#39;; // 提交的内容
Nach dem Login kopieren

Wenn der Name der vom Formular übermittelten Eingabe oder Leerzeichen enthält, wird er direkt in Unterstriche umgewandelt. Wir raten jedoch von der Verwendung von . oder Leerzeichen bei der Benennung des Frontends ab. Verwenden Sie bei Bedarf einfach Unterstriche.

Das [] im Parameternamen

    // 参数名中的[]
    print_r($_REQUEST[&#39;interest&#39;]); // Array (v,....) 
    echo &#39;<br />&#39;;
    print_r($_REQUEST[&#39;edu&#39;]); // Array (k/v,....)
Nach dem Login kopieren

Wenn der Name der vom Formular übermittelten Eingabe in Form eines Arrays vorliegt, also in der Form „interest[]“ oder „edu[one] ", die Parameter, die wir standardmäßig erhalten, werden zu einem Array von Inhalten.

Die erweiterte php://-Eingabe

    // php://input
    $content = file_get_contents(&#39;php://input&#39;);   
    print_r($content); //name=xxx&.....
Nach dem Login kopieren

Schließlich wird die php://-Eingabeform des Parameters häufig in der Schnittstellenentwicklung verwendet. Wenn viele Sicherheits- oder Parameterfelder vorhanden sind, überträgt das Frontend im Allgemeinen direkt einen ganzen Abschnitt des Body-Inhalts in Form von Body Raw. Derzeit kann es nur in dieser Form abgerufen werden. Der ursprüngliche Inhalt dieses Body Raw besteht normalerweise aus einem ganzen Textabschnitt oder es kann sich um einen verschlüsselten Inhalt handeln. Das Format kann von Ihnen selbst definiert werden. Bei einem normalen Formular erhalten wir den ursprünglichen Formularinhalt, genau wie der Name=xxx&tel=xxx&.... oben.

Es ist zu beachten, dass bei Verwendung von enctype="multipart/form-data" der Inhalt nicht abgerufen werden kann. Gleichzeitig ersetzt diese Methode auch die globale Variable $HTTP_RAW_POST_DATA. Verwenden Sie nicht mehr die neue Version von PHP, um die neuen Syntaxfunktionen zu nutzen.

Zusammenfassung

Nachdem ich es geklärt hatte, stellte ich fest, dass eine einfache Parameterverbindung so viele Formen und Dinge hat, die Aufmerksamkeit erfordern, was wirklich aufschlussreich ist. Es ist immer noch das gleiche Sprichwort: Das Lernen hat kein Ende. Wenn Sie weiter gründlich lernen, werden Sie früher oder später ein Meister!

Testcode:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202002/source/%E5%8F%98%E7%9D%80%E8%8A%B1%E6%A0%B7%E6%9D%A5%E6%8E%A5%E5%8F%82%EF%BC%8CPHP%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%A4%96%E9%83%A8%E5%8F%82%E6%95%B0%E7%9A%84%E6%96%B9%E5%BC%8F.php
Nach dem Login kopieren

Empfohlenes Lernen: php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, externe Parameter in PHP zu empfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP arbeitet mit Datenbank CakePHP arbeitet mit Datenbank Sep 10, 2024 pm 05:25 PM

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles