English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundanleitung

PHP Fortgeschrittene Anleitung

PHP & MySQL

PHP Referenzhandbuch

PHP-Filter

In diesem Tutorial lernen Sie, wie Sie Benutzerinput in PHP bereinigen und validieren können.

Verwendung von Filtern zur Validierung und Bereinigung von Daten

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.

Zeichenfolge bereinigen

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?

Int-Wert überprüfen

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‹/›

Überprüfen Sie die IP-Adresse

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‹/›

Bereinigen und überprüfen Sie die E-Mail-Adresse

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!#$%&'*+-=?^_`{|}~@.[]。

Bereinigen und überprüfen Sie URLs

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.

Überprüfen Sie die Integer im Bereich

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‹/›