ConFoo 2025

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Konstanten für die Eingabe

Diese Konstanten werden von filter_input() und filter_input_array(). verwendet.

INPUT_POST (int)
POST-Variablen.
INPUT_GET (int)
GET-Variablen.
COOKIE-Variablen.
INPUT_ENV (int)
ENV-Variablen.
INPUT_SERVER (int)
SERVER-Variablen.
INPUT_SESSION (int)
SESSION-Variablen. (Entfernt ab PHP 8.0.0; war vorher nicht implementiert)
INPUT_REQUEST (int)
REQUEST-Variablen. (Entfernt ab PHP 8.0.0; war vorher nicht implementiert)
Allgemeine Filter-Flags
FILTER_FLAG_NONE (int)
Keine Flags.
FILTER_REQUIRE_SCALAR (int)
Flag, das angibt, dass die Filtereingabe ein Skalar sein muss.
FILTER_REQUIRE_ARRAY (int)
Flag, das angibt, dass die Filtereingabe ein Array sein muss.
FILTER_FORCE_ARRAY (int)
Dieses Flag wandelt eine skalare Eingabe in ein Array mit einem Element um; für Filter, die mit Arrays arbeiten.
FILTER_NULL_ON_FAILURE (int)
Bei Fehlern null anstelle von false verwenden. Kann mit jedem FILTER_VALIDATE_*-Validierungsfilter verwendet werden. filter.
Filter-Flags für die Bereinigung
FILTER_FLAG_STRIP_LOW (int)
Zeichen mit einem ASCII-Wert kleiner 32 entfernen.
FILTER_FLAG_STRIP_HIGH (int)
Zeichen mit einem ASCII-Wert größer 127 entfernen.
FILTER_FLAG_STRIP_BACKTICK (int)
Backtick-Zeichen (`) entfernen.
FILTER_FLAG_ENCODE_LOW (int)
Zeichen mit einem ASCII-Wert kleiner 32 kodieren.
FILTER_FLAG_ENCODE_HIGH (int)
Zeichen mit einem ASCII-Wert größer 127 kodieren.
FILTER_FLAG_ENCODE_AMP (int)
& kodieren.
FILTER_FLAG_NO_ENCODE_QUOTES (int)
Einfache und doppelte Anführungszeichen (' und ") nicht kodieren.
FILTER_FLAG_EMPTY_STRING_NULL (int)
Wenn die Bereinigung einer Zeichenkette zu einer leeren Zeichenkette führt, den Wert in null umwandeln.
Filter für die Validierung
FILTER_VALIDATE_BOOL (int)
Gibt bei den Werten "1", "true", "on" und "yes" true zurück. Gibt bei den Werten "0", "false", "off", "no" und "" false zurück. Der Rückgabewert für nicht-boolesche Werte hängt von FILTER_NULL_ON_FAILURE ab. Wenn es gesetzt ist, wird null zurückgegeben, andernfalls wird false zurückgegeben.
Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
Verfügbar seit PHP 8.0.0.
FILTER_VALIDATE_BOOLEAN (int)
Alias von FILTER_VALIDATE_BOOL. Der Alias war bereits vor der Einführung des kanonischen Namens in PHP 8.0.0 verfügbar.
FILTER_VALIDATE_INT (int)
Prüft, ob der Wert ein Integer ist und konvertiert im Erfolgsfall nach int.

Hinweis: Bei Zeichenketten-Werte werden vor dem Vergleich führende und nachfolgende Leerzeichen mittels trim() entfernt.

Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
min_range
Der Wert ist nur gültig, wenn er größer oder gleich dem angegebenen Wert ist.
max_range
Der Wert ist nur gültig, wenn er kleiner oder gleich dem angegebenen Wert ist.
Optionale Flags
FILTER_FLAG_ALLOW_OCTAL (int)
Integer in oktaler Schreibweise (0[0-7]+) zulassen.
FILTER_FLAG_ALLOW_HEX (int)
Integer in hexadezimaler Schreibweise (0x[0-9a-fA-F]+) zulassen.
FILTER_VALIDATE_FLOAT (int)
Prüft, ob der Wert eine Gleitkommazahl ist und konvertiert im Erfolgsfall nach float.

Hinweis: Bei Zeichenketten-Werte werden vor dem Vergleich führende und nachfolgende Leerzeichen mittels trim() entfernt.

Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
decimal
min_range
Der Wert ist nur gültig, wenn er größer oder gleich dem angegebenen Wert ist. Verfügbar seit PHP 7.4.0.
max_range
Der Wert ist nur gültig, wenn er kleiner oder gleich dem angegebenen Wert ist. Verfügbar seit PHP 7.4.0.
Optionale Flags
FILTER_FLAG_ALLOW_THOUSAND (int)
Kommas (,), die normalerweise das Tausender-Trennzeichen darstellen, zulassen.
FILTER_VALIDATE_REGEXP (int)
Prüft, ob der Wert auf den regulären Ausdruck passt, der mit der Option regexp angegeben wurde.
Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
regexp
Perl-kompatibler regulärer Ausdruck.
FILTER_VALIDATE_URL (int)
Prüft, ob der URL-Name gemäß » RFC 2396 gültig ist.
Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
Optionale Flags
FILTER_FLAG_SCHEME_REQUIRED (int)
Erfordert, dass die URL ein Schema enthält.
Warnung

DEPRECATED (veraltet) seit PHP 7.3.0 und REMOVED (entfernt) seit PHP 8.0.0. Das liegt daran, dass es immer durch den Filter FILTER_VALIDATE_URL impliziert wird.

FILTER_FLAG_HOST_REQUIRED (int)
Erfordert, dass die URL einen Host enthält.
Warnung

DEPRECATED (veraltet) seit PHP 7.3.0 und REMOVED (entfernt) seit PHP 8.0.0. Das liegt daran, dass es immer durch den Filter FILTER_VALIDATE_URL impliziert wird.

FILTER_FLAG_PATH_REQUIRED (int)
Erfordert, dass die URL einen Pfad enthält.
FILTER_FLAG_QUERY_REQUIRED (int)
Erfordert, dass die URL eine Anfrage enthält.
Warnung

Eine gültige URL gibt möglicherweise nicht das HTTP-Protokoll (http://) an, weshalb eventuell eine weitere Validierung erforderlich ist, um festzustellen, ob die URL ein erwartetes Protokoll verwendet, z. B. ssh:// oder mailto:.

Warnung

Dieser Filter funktioniert nur bei ASCII-URLs. Das bedeutet, dass internationalisierte Domain-Namen (IDN) immer abgelehnt werden.

FILTER_VALIDATE_DOMAIN (int)
Prüft, ob der Name der Domain gemäß » RFC 952, » RFC 1034, » RFC 1035, » RFC 1123, » RFC 2732 und » RFC 2181 gültig ist.
Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
Optionale Flags
FILTER_FLAG_HOSTNAME (int)
Erfordert, dass Hostnamen mit einem alphanumerischen Zeichen beginnen und nur alphanumerische Zeichen und Bindestriche enthalten.
FILTER_VALIDATE_EMAIL (int)
Prüft, ob der Wert eine "gültige" E-Mail-Adresse ist. Die Überprüfung erfolgt gemäß der addr-spec-Syntax in » RFC 822. Kommentare, Whitespace-Folding und punktlose Domänennamen werden jedoch nicht unterstützt und daher zurückgewiesen.
Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
Optionale Flags
FILTER_FLAG_EMAIL_UNICODE (int)
Akzeptiert Unicode-Zeichen im lokalen Teil. Verfügbar seit PHP 7.1.0.
Warnung

Die E-Mail-Validierung ist komplex, und die einzige Möglichkeit, die Gültigkeit und Existenz einer E-Mail zu bestätigen, besteht darin, eine E-Mail an die Adresse zu senden.

FILTER_VALIDATE_IP (int)

Prüft, ob der Wert eine IP-Adresse ist.

Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
Optionale Flags
FILTER_FLAG_IPV4 (int)
IPv4-Adresse zulassen.
FILTER_FLAG_IPV6 (int)
IPv6-Adresse zulassen.
FILTER_FLAG_NO_RES_RANGE (int)
Reservierte Adressen ablehnen. Dies sind die Bereiche, die in » RFC 6890 als Reserved-By-Protocol (reserviert durch das Protokoll) gekennzeichnet sind.

Dies entspricht bei IPv4 den folgenden Bereichen: 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8, 240.0.0.0/4.

Und für IPv6 entspricht dies den folgenden Bereichen: ::1/128, ::/128, ::FFFF:0:0/96, FE80::/10.

FILTER_FLAG_NO_PRIV_RANGE (int)
Private Adressen ablehnen.

Dabei handelt es sich um IPv4-Adressen in folgenden Bereichen: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.

Das sind die IPv6-Adressen, die mit FD oder FC beginnen.
FILTER_FLAG_GLOBAL_RANGE (int)
Nur globale Adressen zulassen. Diese sind in » RFC 6890 zu finden, wo das Global-Attribut True ist. Verfügbar seit PHP 8.2.0.
FILTER_VALIDATE_MAC (int)
ID des "validate_mac_address"-Filters.
Verfügbare Optionen
default
Der Wert, der zurückgegeben werden soll, wenn der Filter fehlschlägt.
Filter für die Bereinigung
FILTER_UNSAFE_RAW (int)
Dieser Filter bewirkt nichts. Er kann jedoch Sonderzeichen entfernen oder kodieren, wenn er zusammen mit den Flags FILTER_FLAG_STRIP_* und FILTER_FLAG_ENCODE_* für die Bereinigungsfilter verwendet wird.
FILTER_DEFAULT (int)
Alias von FILTER_UNSAFE_RAW.
FILTER_SANITIZE_STRING (int)
Mit diesem Filter werden Tags entfernt und doppelte und einfache Anführungszeichen HTML-kodiert. Optional kann er bestimmte Zeichen entfernen oder kodieren, wenn er zusammen mit den FILTER_FLAG_STRIP_*- und FILTER_FLAG_ENCODE_*-Flags für die Bereinigungsfilter verwendet wird. Die Kodierung von Anführungszeichen kann mit dem Filterflag FILTER_FLAG_NO_ENCODE_QUOTES deaktiviert werden.
Warnung

Seit PHP 8.1.0 veraltet; stattdessen sollte htmlspecialchars() verwendet werden.

Warnung

Die Art und Weise, wie dieser Filter Tags entfernt, entspricht nicht der Funktion strip_tags().

FILTER_SANITIZE_STRIPPED (int)
Alias von FILTER_SANITIZE_STRING.
Warnung

Seit PHP 8.1.0 veraltet; stattdessen sollte htmlspecialchars() verwendet werden.

FILTER_SANITIZE_ENCODED (int)
Mit diesem Filter wird eine Zeichenkette URL-kodiert. Optional kann er bestimmte Zeichen entfernen oder kodieren, wenn er zusammen mit den FILTER_FLAG_STRIP_*- und FILTER_FLAG_ENCODE_*-Flags für die Bereinigungsfilter verwendet wird.
FILTER_SANITIZE_SPECIAL_CHARS (int)

Mit diesem Filter werden ', ", <, >, & und Zeichen mit einem ASCII-Wert kleiner als 32 HTML-kodiert.

Optional kann er bestimmte Zeichen entfernen, wenn er zusammen mit den FILTER_FLAG_STRIP_*-Flags für die Bereinigungsfilter verwendet wird, und mit Hilfe von FILTER_FLAG_ENCODE_HIGH kann er Zeichen mit einem ASCII-Wert größer als 127 kodieren.
FILTER_SANITIZE_FULL_SPECIAL_CHARS (int)
Dieser Filter entspricht dem Aufruf von htmlspecialchars() mit der Konstante ENT_QUOTES. Die Kodierung von Anführungszeichen kann mit dem Filterflag FILTER_FLAG_NO_ENCODE_QUOTES deaktiviert werden.
Warnung

Wie htmlspecialchars() berücksichtigt auch dieser Filter die INI-Einstellung default_charset. Wird eine Bytefolge erkannt, die ein für den aktuellen Zeichensatz ungültiges Zeichen enthält, wird die gesamte Zeichenkette verworfen und eine leere Zeichenkette zurückgegeben.

FILTER_SANITIZE_EMAIL (int)
Die Zeichenkette bereinigen durch Entfernen aller Zeichen außer lateinischen Buchstaben ([a-zA-Z]), Ziffern ([0-9]) und den Sonderzeichen !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_URL (int)
Die Zeichenkette bereinigen durch Entfernen aller Zeichen außer lateinischen Buchstaben ([a-zA-Z]), Ziffern ([0-9]) und den Sonderzeichen $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_SANITIZE_NUMBER_INT (int)
Die Zeichenkette bereinigen durch Entfernen aller Zeichen außer Ziffern ([0-9]), Plus- (+) und Minuszeichen (-).
FILTER_SANITIZE_NUMBER_FLOAT (int)
Die Zeichenkette bereinigen durch Entfernen aller Zeichen außer Ziffern ([0-9]), Plus- (+) und Minuszeichen (-).
Optional Flags
FILTER_FLAG_ALLOW_FRACTION (int)
Das Punkt-Zeichen (.), das normalerweise das Trennzeichen zwischen dem ganzzahligen und dem gebrochenen Teil darstellt, zulassen.
FILTER_FLAG_ALLOW_THOUSAND (int)
Kommas (.), die normalerweise das Trennzeichen zwischen dem ganzzahligen und dem gebrochenen Teil darstellen, zulassen.
FILTER_FLAG_ALLOW_SCIENTIFIC (int)
Zahlen in wissenschaftlicher Notation akzeptieren, indem die Zeichen e und E zugelassen werden.
Warnung

Wenn das Flag FILTER_FLAG_ALLOW_FRACTION nicht verwendet wird, wird das Dezimaltrennzeichen entfernt, wodurch sich der empfangene Wert ändert.

<?php
$number
= '12.34';

var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT));
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(4) "1234"
string(5) "12.34"
FILTER_SANITIZE_ADD_SLASHES (int)
addslashes() auf die Eingabe anwenden. Verfügbar seit PHP 7.3.0.
FILTER_SANITIZE_MAGIC_QUOTES (int)
Alias von FILTER_SANITIZE_ADD_SLASHES.
Warnung

DEPRECATED (veraltet) seit PHP 7.3.0 und REMOVED (entfernt) seit PHP 8.0.0.

Benutzerdefinierter Filter
FILTER_CALLBACK (int)
Dieser Filter delegiert die Filterung an eine benutzerdefinierte Funktion. Das Callable wird über den Parameter options als Wert für den Schlüssel 'options' übergeben.

Der Callback sollte die folgende Signatur haben:

callback(string $value): mixed
value
Der zu filternde Wert.

Hinweis: Der Rückgabewert des Callbacks entspricht dem Rückgabewert der aufgerufenen Filterfunktion.

Beispiel #1 Beispiel für die Verwendung von FILTER_CALLBACK zur Validierung eines Anmeldenamens

<?php
function validate_login($value): ?string
{
if (
strlen($value) >= 5 && ctype_alnum($value)) {
return
$value;
}
return
null;
}

$login = "val1dL0gin";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);

$login = "f&ke login";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "val1dL0gin"
NULL
Warnung

Dieser Filter ist nicht mit anderen Flags kombinierbar, z. B. FILTER_NULL_ON_FAILURE.

add a note

User Contributed Notes 1 note

up
6
shaman_master at list dot ru
4 years ago
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!
To Top