Start · Sprachen · PHP · Referenz · filter_list

filter_list

Funktion

Gibt eine Liste aller Namen der unterstützten Filter-Funktionen zurück, die mit <code>filter_var()</code> und ähnlichen Funktionen verwendet werden können.

seit PHP 5.2.0 Kategorie: string

Signatur

filter_list(): array

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

Typ
array
Beschreibung
Ein numerisch indiziertes Array mit den Namen aller unterstützten Filter als Zeichenketten (z. B. "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));
}
Filter: int ID: 257 Filter: boolean ID: 258 Filter: float ID: 259 Filter: validate_regexp ID: 272 Filter: validate_domain ID: 277 Filter: validate_url ID: 273 Filter: validate_email ID: 274 ... (weitere Filter je nach PHP-Version)

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";
}
E-Mail-Adresse ist gültig.

// 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.