English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen Sie, wie Sie Benutzerinput in PHP bereinigen und validieren können.
Daten bereinigen und validieren mit Filtern
Um Daten mit dem Filter-Extension zu validieren, müssen Sie die Funktion filter_var() von PHP verwenden. Die Grundsyntax dieser Funktion kann wie folgt dargestellt werden:
filter_var(variable, filter, options)
Diese Funktion hat drei Parameter, von denen die letzten beiden optional sind. Der erste Parameter ist der zu filternde Wert, der zweite Parameter ist die ID des anzuwendenden Filters, und der dritte Parameter ist ein Array mit Optionen, die mit dem Filter verbunden sind. Lassen Sie uns sehen, wie es funktioniert.
Im folgenden Beispiel wird die Zeichenfolge durch Entfernen aller HTML-Tags bereinigt:
<?php //Beispiel für Benutzerkommentare $comment = "<h1>Hallo! Wie geht es dir heute?</>h1>"; //Kommentarzeichenfolge bereinigen und ausgeben $sanitizedComment = filter_var($comment, FILTER_SANITIZE_STRING); echo $sanitizedComment; ?>Testen Sie heraus‹/›
Die Ausgabe des obigen Beispiels ist wie folgt:
Hallo! Wie geht es dir heute?
Im folgenden Beispiel wird überprüft, ob der Wert ein gültiges Integer ist.
<?php // Beispiel-Integer-Wert $int = 20; // Int-Wert überprüfen if(filter_var($int, FILTER_VALIDATE_INT)){ echo "<b>$int</b> ist eine gültige Ganzzahl"; } else { echo "<b>$int</b> ist keine gültige Ganzzahl"; } ?>Testen Sie heraus‹/›
Im obigen Beispiel zeigt das Beispielcode eine ungültige Ganzzahlnachricht an, wenn die Variable $int auf 0 gesetzt wird. Um dieses Problem zu lösen, müssen Sie den Wert 0 wie folgt explizit testen:
<?php //Beispiel-Integer-Wert $int = 0; // Überprüfen Sie den Beispielwert einer Ganzzahl if(filter_var($int, FILTER_VALIDATE_INT) === 0 || filter_var($int, FILTER_VALIDATE_INT)){ echo "The <b>$int</b> ist eine gültige Ganzzahl"; } else { echo "The <b>$int</b> ist keine gültige Ganzzahl"; } ?>Testen Sie heraus‹/›
Das folgende Beispiel überprüft, ob der Wert eine gültige IP-Adresse ist.
<?php // IP-Adresse $ip = ""172.16.254.1"; // Überprüfungsbeispiel für IP-Adresse if(filter_var($ip, FILTER_VALIDATE_IP)){ echo "<b>$ip</b> ist eine gültige IP-Adresse"; } else { echo "<b>$ip</b> ist keine gültige IP-Adresse"; } ?>Testen Sie heraus‹/›
Sie können FILTER_FLAG_IPV4oder FILTER_FLAG_IPV6Zeichen weiter auf IPV4oder IPV6 Die IP-Adresse wird überprüft. Dies ist ein Beispiel:
<?php // IP-Adresse $ip = ""172.16.254.1"; // Überprüfungsbeispiel für IP-Adresse if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { echo "<b>$ip</b> ist eine gültige IPV6Adresse"; } else { echo "<b>$ip</b> ist keine gültige IPV6Adresse"; } ?>Testen Sie heraus‹/›
Der folgende Beispiel zeigt Ihnen, wie Sie E-Mail-Adressen bereinigen und überprüfen können.
<?php // E-Mail-Adresse $email = "someone@@example.com"; //Entfernen Sie alle ungültigen Zeichen aus der E-Mail-Adresse $sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL); //Überprüfen Sie die E-Mail-Adresse if($email == $sanitizedEmail && filter_var($email, FILTER_VALIDATE_EMAIL)){ echo "$email ist eine gültige E-Mail-Adresse"; } else { echo "$email ist keine gültige E-Mail-Adresse"; } ?>Testen Sie heraus‹/›
Anmerkung:Der Filter FILTER_SANITIZE_EMAIL entfernt alle ungültigen Zeichen von den Zeichenfolgen des E-Mail-Adressformats, außer Buchstaben, Ziffern und den angegebenen Zeichenfolgen der E-Mail-Adresse!#$%&'*+-=?^_`{|}~@.[]。
Nachfolgender Beispielcode zeigt Ihnen, wie Sie URLs bereinigen und überprüfen können.
<?php // URL-Beispiel $url = "http:://www.example.com" //Entfernen Sie alle ungültigen Zeichen aus der URL $sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL); // Überprüfen Sie die Website-URL if($url == $sanitizedUrl && filter_var($url, FILTER_VALIDATE_URL)){ echo "$url ist eine gültige Website-URL"; } else { echo "$url ist keine gültige Website-URL"; } ?>Testen Sie heraus‹/›
Hinweis:Der FILTER_SANITIZE_URL-Filter entfernt alle ungültigen Zeichen, außer Buchstaben, Ziffern und den in der URL-zeichenkette bereitgestellten Zeichen$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
Sie können auch Flags verwenden, um zu überprüfen, ob die URL den Query-String enthält FILTER_FLAG_QUERY_REQUIRED, wie im folgenden Beispiel gezeigt:
<?php //url $url = "http://www.example.com?topic=filters"; //Überprüfen Sie die Website-URL, um den Query-String zu erhalten if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)){ echo "<b>$url</b> Enthält Query-String"; } else { echo "<b>$url</b> Enthält keine Query-String"; } ?>Testen Sie heraus‹/›
Bitte beziehen Sie sich aufHTML-URLTutorials, um zu verstehenURLunterschiedlichen Komponenten.
Nachfolgender Beispielcode wird überprüfen, ob der angegebene Wert ein Integer ist und ob er im Bereich von 0 bis10im Bereich von 0.
<?php // Beispiel-Integer-Wert $int = 75; //Überprüfen Sie den Wert der Integer-Sample if(filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range" => 0,"max_range" => 100)))){ echo "<b>$int</b> In der Spanne von 0 bis10im Bereich von 0"; } else { echo "<b>$int</b> Nicht in der Spanne von 0 bis10im Bereich von 0"; } ?>Testen Sie heraus‹/›