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)
FILTER_FLAG_HOST_REQUIRED
(int)
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_DEFAULT
(int)
FILTER_UNSAFE_RAW
.
FILTER_SANITIZE_STRING
(int)
FILTER_SANITIZE_STRIPPED
(int)
FILTER_SANITIZE_STRING
.
(Seit PHP 8.1.0 veraltet, stattdessen sollte
htmlspecialchars() verwendet werden.)
FILTER_SANITIZE_ENCODED
(int)
FILTER_SANITIZE_SPECIAL_CHARS
(int)
FILTER_SANITIZE_FULL_SPECIAL_CHARS
(int)
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.
FILTER_SANITIZE_ADD_SLASHES
(int)
FILTER_SANITIZE_MAGIC_QUOTES
(int)
FILTER_SANITIZE_ADD_SLASHES
.
(Seit PHP 7.3.0 VERALTET und in PHP 8.0.0
ENTFERNT.)
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!