Der vorherige Artikel hat Ihnen „Wie schreibe ich E-Mail-Programmdateien mit PHP?“ vorgestellt. 》In diesem Artikel erfahren Sie weiterhin, was ein PHP-Filter ist. Welche Arten von Filtern gibt es? Lass uns zusammen gehen!
Was sind PHP-Filter?
PHP-Filter werden verwendet, um Daten aus unsicheren Quellen zu validieren und zu filtern.
Das Testen, Validieren und Filtern von Benutzereingaben oder benutzerdefinierten Daten ist ein wichtiger Bestandteil jeder Webanwendung.
Die Filtererweiterung für PHP soll die Datenfilterung einfacher und schneller machen.
PHP-Filter werden verwendet, um Daten aus unsicheren Quellen, wie z. B. Benutzereingaben, zu validieren und zu filtern.
Warum Filter verwenden?
Fast alle Webanwendungen sind auf externen Input angewiesen. Diese Daten stammen in der Regel von Benutzern oder anderen Anwendungen (z. B. Webdiensten). Durch die Verwendung von Filtern können Sie sicherstellen, dass Ihre Anwendung den richtigen Eingabetyp erhält.
Sie sollten immer externe Daten filtern!
Eingabefilterung ist eines der wichtigsten Themen zur Anwendungssicherheit.
Was sind externe Daten?
Eingabedaten aus Formularen
Cookies
Webdienstdaten
Servervariablen
Datenbankabfrage
Funktionen und Filter
Zum Filtern Variablen verwenden Sie eine der folgenden Filterfunktionen:
filter_var() – Eine einzelne Variable nach einem angegebenen Filter filtern
filter_var_array() – Nach demselben oder einem anderen filter_input_array filtern – Mehrere Eingabevariablen abrufen und filtern mit den gleichen oder unterschiedlichen Filtern
Im folgenden Beispiel verwenden wir die Funktion filter_var(), um eine Ganzzahl zu überprüfen:
<?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Wird zur Validierung von Benutzereingaben verwendet
Strenge Formatierungsregeln (z. B. URL- oder E-Mail-Validierung)
Returns die erwarteter Typ, wenn erfolgreich, gibt FALSE zurück, wenn fehlgeschlagen
Kommt immer wieder zurück eine Zeichenfolge
Optionen und Flags Optionen und Flags werden verwendet, um dem angegebenen Filter zusätzliche Filteroptionen hinzuzufügen.
Verschiedene Filter haben unterschiedliche Optionen und Flags.
Im folgenden Beispiel validieren wir eine Ganzzahl mithilfe von filter_var() mit den Optionen „min_range“ und „max_range“:
<?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Formulare bestehen normalerweise aus mehreren Eingaben. Feldzusammensetzung. Um wiederholte Aufrufe der Funktionen filter_var oder filter_input zu vermeiden, können wir filter_var_array oder die Funktion filter_input_array verwenden.
<?php $filters = array ( "name" => array ( "filter"=>FILTER_SANITIZE_STRING ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL ); $result = filter_input_array(INPUT_GET, $filters); if (!$result["age"]) { echo("年龄必须在 1 到 120 之间。<br>"); } elseif(!$result["email"]) { echo("E-Mail 不合法<br>"); } else { echo("输入正确"); } ?>
Die Ergebnisse sind wie folgt:
Erklärung der Beispiele:
Legen Sie ein Array fest, das den Namen der Eingabevariablen und den Filter für die angegebene Eingabevariable enthält.
Der zweite Parameter der Funktion filter_input_array() kann ein Array oder die ID eines einzelnen Filters sein.
Wenn der Parameter die ID eines einzelnen Filters ist, filtert der angegebene Filter alle Werte im Eingabearray.
Wenn der Parameter ein Array ist, muss das Array den folgenden Regeln folgen:
Muss ein assoziatives Array sein, die darin enthaltene Eingabevariable ist der Schlüssel des Arrays (z. B. die Eingabevariable „Alter“).
Dieser Array-Wert muss die ID des Filters oder ein Array sein, das Filter, Flags und Optionen angibt
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas sind PHP-Filter? Welche Arten von Filtern gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!