Signatur
Beschreibung
filter_list() liefert ein indiziertes Array mit den Namen aller Filter, die die PHP-Filtererweiterung (ext/filter) unterstützt. Diese Namen können beispielsweise genutzt werden, um dynamisch zu ermitteln, welche Filter auf dem aktuellen System verfügbar sind.
Die zurückgegebenen Zeichenketten entsprechen den Bezeichnungen, die man auch an filter_id() übergeben kann, um die zugehörige Filter-ID zu erhalten. Umgekehrt liefert filter_id() die numerische Konstante (z. B. FILTER_VALIDATE_EMAIL), die dann mit filter_var() genutzt werden kann.
Die Funktion ist besonders nützlich zur Inspektion und Dokumentation der verfügbaren Validierungs- und Bereinigungsfilter sowie beim Aufbau dynamischer Formularsysteme, die den Nutzer aus den vorhandenen Filtern auswählen lassen.
Rückgabewert
"int", "validate_email", "sanitize_string"). Das Array ist nie leer, da die Filtererweiterung stets in PHP integriert ist.Beispiele
Alle verfügbaren Filter ausgeben
<?php
$filter = filter_list();
foreach ($filter as $name) {
echo sprintf("Filter: %-30s ID: %d\n", $name, filter_id($name));
}
Prüfen, ob ein bestimmter Filter verfügbar ist
<?php
$gesuchterFilter = 'validate_email';
if (in_array($gesuchterFilter, filter_list(), true)) {
$ergebnis = filter_var('beispiel@example.com', filter_id($gesuchterFilter));
echo $ergebnis !== false
? "E-Mail-Adresse ist gültig.\n"
: "E-Mail-Adresse ist ungültig.\n";
} else {
echo "Filter '{$gesuchterFilter}' ist nicht verfügbar.\n";
}
// Wichtig · Fallstricke
Die Funktion gibt die internen Filter-Namen zurück, nicht die PHP-Konstantennamen (z. B. wird "validate_email" zurückgegeben, nicht "FILTER_VALIDATE_EMAIL"). Um die Konstante zu erhalten, muss filter_id() verwendet werden.
Ab PHP 8.1.0 ist der Sanitize-Filter string (alias stripped) als veraltet markiert. Bei Verwendung älterer Filter-Namen in neueren PHP-Versionen sollte stets auf Deprecation-Hinweise geachtet werden.