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 — Returns a list of all supported filters
This function has no parameters.
Returns an array of names of all supported filters, empty array if there are no such filters. Indexes of this array are not filter IDs, they can be obtained with filter_id() from a name instead.
Example #1 A filter_list() example
<?php
print_r(filter_list());
?>
The above example will output something similar to:
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>';
?>