2 strings, but it's faster (-2 calls) and not the longest
<?php
$filters = filter_list();
$filters = array_combine($filters, array_map('filter_id', $filters));
?>
also I use id's as values: $filters[$filter] - get filter id by name
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_list — Retorna a lista de todos filtros suportados
Retorna um array dos nomes de todos filtros suportados, um array vazio se não há filtros. Índices deste array não são IDs de filtros, eles podem ser obtidos com filter_id() a partir do nome.
Exemplo #1 Um exemplo da filter_list()
<?php
print_r(filter_list());
?>
O exemplo acima irá imprimir algo similar à:
Array ( [0] => int [1] => boolean [2] => float [3] => validate_regexp [4] => validate_url [5] => validate_email [6] => validate_ip [7] => string [8] => stripped [9] => encoded [10] => special_chars [11] => unsafe_raw [12] => email [13] => url [14] => number_int [15] => number_float [16] => magic_quotes [17] => callback )
2 strings, but it's faster (-2 calls) and not the longest
<?php
$filters = filter_list();
$filters = array_combine($filters, array_map('filter_id', $filters));
?>
also I use id's as values: $filters[$filter] - get filter id by name
Get filter_list() with filter_id() as key.
<?php
print_r(array_flip(array_map('filter_id', array_combine(filter_list(), filter_list()))));
?>
Array
(
[257] => int
[258] => boolean
[259] => float
[272] => validate_regexp
[277] => validate_domain
[273] => validate_url
[274] => validate_email
[275] => validate_ip
[276] => validate_mac
[513] => stripped
[514] => encoded
[515] => special_chars
[522] => full_special_chars
[516] => unsafe_raw
[517] => email
[518] => url
[519] => number_int
[520] => number_float
[521] => magic_quotes
[1024] => callback
)
<?php
echo "<pre>";
print_r(filter_list());
echo "</pre>";
foreach (filter_list() as $key => $value)
{
echo "<br>".$key."=".$value.'='.filter_id($value);
}
?>
0=int=257
1=boolean=258
2=float=259
3=validate_regexp=272
4=validate_url=273
5=validate_email=274
6=validate_ip=275
7=string=513
8=stripped=513
9=encoded=514
10=special_chars=515
11=unsafe_raw=516
12=email=517
13=url=518
14=number_int=519
15=number_float=520
16=magic_quotes=521
17=callback=1024
Output a table of Filter IDs as Integers with corresponding Constant IDs:
<?php
echo '<table>';
echo '<tr>';
echo '<th>Filter Name</th>';
echo '<th>Filter Int ID</th>';
echo '<th>Filter Const ID</th>';
echo '</tr>';
foreach (filter_list() as $id =>$filter) {
$const = 'FILTER_';
switch($filter) {
case 'int':
case 'boolean':
case 'float':
$const .= 'VALIDATE_' . $filter;
break;
case 'string':
case 'stripped':
case 'encoded':
case 'special_chars':
case 'full_special_chars':
case 'unsafe_raw':
case 'email':
case 'url':
case 'number_int':
case 'number_float':
case 'magic_quotes':
$const .= 'SANITIZE_' . $filter;
break;
}
if (substr($filter,0,8)=='validate' || $filter=='callback')
$const .= $filter;
echo '<tr><td>' . $filter . '</td><td align="center">' . filter_id($filter) . '</td><td>' . strtoupper($const) . '</td></tr>';
}
echo '</table>';
?>