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 — Liefert eine Liste aller unterstützten Filter
Liefert ein Array mit den Namen aller unterstützter Filter oder ein leeres Array, wenn keine Filter zur Verfügung stehen. Der Index des Arrays entspricht nicht der Filter-ID, diese kann durch die Funktion filter_id() ermittelt werden.
Beispiel #1 filter_list() Beispiel
<?php
print_r(filter_list());
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
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>';
?>