Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!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.
Diese Konstanten werden von filter_input() und filter_input_array(). verwendet.
INPUT_POST
(int)
INPUT_GET
(int)
INPUT_ENV
(int)
INPUT_SERVER
(int)
INPUT_SESSION
(int)
INPUT_REQUEST
(int)
FILTER_FLAG_NONE
(int)
FILTER_REQUIRE_SCALAR
(int)
FILTER_REQUIRE_ARRAY
(int)
FILTER_FORCE_ARRAY
(int)
FILTER_NULL_ON_FAILURE
(int)
null anstelle von false verwenden.
Kann mit jedem
FILTER_VALIDATE_*-Validierungsfilter
verwendet werden.
filter.
FILTER_FLAG_STRIP_LOW
(int)
FILTER_FLAG_STRIP_HIGH
(int)
FILTER_FLAG_STRIP_BACKTICK
(int)
`) entfernen.
FILTER_FLAG_ENCODE_LOW
(int)
FILTER_FLAG_ENCODE_HIGH
(int)
FILTER_FLAG_ENCODE_AMP
(int)
& kodieren.
FILTER_FLAG_NO_ENCODE_QUOTES
(int)
' und
") nicht kodieren.
FILTER_FLAG_EMPTY_STRING_NULL
(int)
null umwandeln.
FILTER_VALIDATE_BOOL
(int)
"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.
defaultFILTER_VALIDATE_BOOLEAN
(int)
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)
Hinweis: Bei Zeichenketten-Werte werden vor dem Vergleich führende und nachfolgende Leerzeichen mittels trim() entfernt.
defaultmin_rangemax_rangeFILTER_FLAG_ALLOW_OCTAL
(int)
0[0-7]+) zulassen.
FILTER_FLAG_ALLOW_HEX
(int)
0x[0-9a-fA-F]+) zulassen.
FILTER_VALIDATE_FLOAT
(int)
Hinweis: Bei Zeichenketten-Werte werden vor dem Vergleich führende und nachfolgende Leerzeichen mittels trim() entfernt.
defaultdecimalmin_rangemax_rangeFILTER_FLAG_ALLOW_THOUSAND
(int)
,), die normalerweise das
Tausender-Trennzeichen darstellen, zulassen.
FILTER_VALIDATE_REGEXP
(int)
regexp angegeben wurde.
defaultregexpFILTER_VALIDATE_URL
(int)
defaultFILTER_FLAG_SCHEME_REQUIRED
(int)
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)
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)
FILTER_FLAG_QUERY_REQUIRED
(int)
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:.
Dieser Filter funktioniert nur bei ASCII-URLs. Das bedeutet, dass internationalisierte Domain-Namen (IDN) immer abgelehnt werden.
FILTER_VALIDATE_DOMAIN
(int)
defaultFILTER_FLAG_HOSTNAME
(int)
FILTER_VALIDATE_EMAIL
(int)
addr-spec-Syntax in
» RFC 822.
Kommentare, Whitespace-Folding und punktlose Domänennamen werden jedoch
nicht unterstützt und daher zurückgewiesen.
defaultFILTER_FLAG_EMAIL_UNICODE
(int)
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.
defaultFILTER_FLAG_IPV4
(int)
FILTER_FLAG_IPV6
(int)
FILTER_FLAG_NO_RES_RANGE
(int)
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)
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.
FD oder
FC beginnen.
FILTER_FLAG_GLOBAL_RANGE
(int)
Global-Attribut
True ist.
Verfügbar seit PHP 8.2.0.
FILTER_VALIDATE_MAC
(int)
defaultFILTER_UNSAFE_RAW
(int)
FILTER_FLAG_STRIP_* und
FILTER_FLAG_ENCODE_* für
die Bereinigungsfilter verwendet wird.
FILTER_DEFAULT
(int)
FILTER_UNSAFE_RAW.
FILTER_SANITIZE_STRING
(int)
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.
Seit PHP 8.1.0 veraltet; stattdessen sollte htmlspecialchars() verwendet werden.
Die Art und Weise, wie dieser Filter Tags entfernt, entspricht nicht der Funktion strip_tags().
FILTER_SANITIZE_STRIPPED
(int)
FILTER_SANITIZE_STRING.
Seit PHP 8.1.0 veraltet; stattdessen sollte htmlspecialchars() verwendet werden.
FILTER_SANITIZE_ENCODED
(int)
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.
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)
ENT_QUOTES.
Die Kodierung von Anführungszeichen kann mit dem Filterflag
FILTER_FLAG_NO_ENCODE_QUOTES deaktiviert werden.
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)
[a-zA-Z]), Ziffern
([0-9]) und den Sonderzeichen
!#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_URL
(int)
[a-zA-Z]), Ziffern
([0-9]) und den Sonderzeichen
$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_SANITIZE_NUMBER_INT
(int)
[0-9]), Plus- (+) und Minuszeichen
(-).
FILTER_SANITIZE_NUMBER_FLOAT
(int)
[0-9]), Plus- (+) und Minuszeichen
(-).
FILTER_FLAG_ALLOW_FRACTION
(int)
.), das normalerweise das
Trennzeichen zwischen dem ganzzahligen und dem gebrochenen Teil
darstellt, zulassen.
FILTER_FLAG_ALLOW_THOUSAND
(int)
.), die normalerweise das
Trennzeichen zwischen dem ganzzahligen und dem gebrochenen Teil
darstellen, zulassen.
FILTER_FLAG_ALLOW_SCIENTIFIC
(int)
e und E zugelassen werden.
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)
FILTER_SANITIZE_MAGIC_QUOTES
(int)
FILTER_SANITIZE_ADD_SLASHES.
DEPRECATED (veraltet) seit PHP 7.3.0 und REMOVED (entfernt) seit PHP 8.0.0.
FILTER_CALLBACK
(int)
options als Wert für den Schlüssel
'options' übergeben.
Der Callback sollte die folgende Signatur haben:
valueHinweis: 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
Dieser Filter ist nicht mit anderen Flags kombinierbar, z. B.
FILTER_NULL_ON_FAILURE.
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!