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.
default
FILTER_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.
default
min_range
max_range
FILTER_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.
default
decimal
min_range
max_range
FILTER_FLAG_ALLOW_THOUSAND
(int)
,
), die normalerweise das
Tausender-Trennzeichen darstellen, zulassen.
FILTER_VALIDATE_REGEXP
(int)
regexp
angegeben wurde.
default
regexp
FILTER_VALIDATE_URL
(int)
default
FILTER_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)
default
FILTER_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.
default
FILTER_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.
default
FILTER_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)
default
FILTER_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:
value
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
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!