W3docs

filter_list()

filter_list() è una funzione PHP che restituisce i nomi di tutti i filtri supportati dalla tua build PHP, utile per diagnostica e rilevamento funzionalità.

Introduzione

filter_list() è una funzione PHP che restituisce i nomi di tutti i filtri supportati dalla tua build PHP. L'estensione filter di PHP è il motore alla base delle funzioni di validazione e sanificazione come filter_var() e filter_input(). Ogni filtro — per email, interi, URL, indirizzi IP e così via — ha un nome breve e un ID numerico, e filter_list() ti consente di scoprire quali sono effettivamente disponibili in fase di esecuzione.

Questa pagina illustra la firma della funzione, cosa restituisce, come si differenzia dalle costanti FILTER_* con nome e gli scenari pratici in cui elencare i filtri è utile (ad esempio, per creare strumenti di diagnostica o verificare la disponibilità di una funzionalità prima di affidarsi a un filtro).

Sintassi

filter_list(): array

Non accetta argomenti e restituisce un array indicizzato di stringhe — il nome breve di ogni filtro supportato dalla tua installazione PHP. L'ordine non è garantito e può variare tra le versioni di PHP, quindi non fare mai affidamento su una posizione specifica.

Valore restituito

I valori dell'array sono nomi di filtro (come "validate_email" o "int"), mentre le chiavi dell'array sono semplicemente interi sequenziali (0, 1, 2…). Le chiavi non sono ID di filtro — un malinteso comune. Per ottenere l'ID numerico reale di un filtro, passa il suo nome a filter_id():

<?php

$filters = filter_list();
echo $filters[0] . "\n";            // e.g. "int"
echo filter_id($filters[0]) . "\n"; // e.g. 257  (FILTER_VALIDATE_INT)

Questi nomi brevi sono l'equivalente a runtime delle costanti FILTER_* che si usano normalmente:

Nome filtroCostante equivalente
intFILTER_VALIDATE_INT
validate_emailFILTER_VALIDATE_EMAIL
validate_urlFILTER_VALIDATE_URL
stringFILTER_SANITIZE_STRING (deprecata in PHP 8.1)
full_special_charsFILTER_SANITIZE_FULL_SPECIAL_CHARS

Elenco di tutti i filtri disponibili

L'uso più comune è enumerare ogni filtro, spesso insieme al suo ID numerico per un riferimento rapido:

<?php

foreach (filter_list() as $name) {
    echo $name . " => " . filter_id($name) . "\n";
}

Output (l'insieme esatto dipende dalla tua versione di PHP):

int => 257
boolean => 258
float => 259
validate_regexp => 272
validate_domain => 277
validate_url => 273
validate_email => 274
validate_ip => 275
validate_mac => 276
string => 513
stripped => 513
encoded => 514
special_chars => 515
full_special_chars => 522
unsafe_raw => 516
email => 517
url => 518
number_int => 519
number_float => 520
add_slashes => 523
callback => 1024

Si noti che string e stripped condividono l'ID 513 — sono due nomi per lo stesso filtro.

Quando usarla?

Raramente si chiama filter_list() nel codice di validazione quotidiano — per quello si usa filter_var() con una costante FILTER_*. filter_list() è particolarmente utile per:

  • Diagnostica e strumenti. Stampare i filtri supportati in una pagina di debug o in un dump delle informazioni sull'ambiente.
  • Rilevamento delle funzionalità. Confermare che un filtro esiste prima di farci affidamento, specialmente per filtri dipendenti dalla build o specifici di una versione.
  • Creazione di interfacce dinamiche. Popolare un menu a discesa che consente a un amministratore di scegliere quale filtro applicare.

Verifica se un filtro specifico esiste

Poiché i valori sono semplici stringhe, puoi verificare la presenza di un filtro con in_array():

<?php

if (in_array("validate_email", filter_list(), true)) {
    echo "Email validation is available.\n";
} else {
    echo "Email filter is missing.\n";
}

Output:

Email validation is available.

Errori comuni

  • Le chiavi sono indici, non ID. Usa filter_id() per convertire un nome nell'ID accettato da filter_var().
  • Nomi vs. costanti. filter_list() restituisce nomi brevi ("int"), non i nomi delle costanti (FILTER_VALIDATE_INT). Non confrontare i due direttamente.
  • L'ordine è instabile. Cerca sempre per nome, mai per posizione.

Funzioni correlate

Conclusione

filter_list() restituisce i nomi di ogni filtro supportato dalla tua build PHP. È principalmente uno strumento di scoperta e diagnostica: abbinala a filter_id() per ispezionare gli ID, usa in_array() per verificare la disponibilità, e ricorri a filter_var() quando hai effettivamente bisogno di validare o sanificare i dati.

Pratica

Pratica
Quali dei seguenti sono nomi di filtro validi restituiti da filter_list() in PHP?
Quali dei seguenti sono nomi di filtro validi restituiti da filter_list() in PHP?
Was this page helpful?