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 — 返回所支持的过滤器列表
返回一个所支持的过滤器的名称的列表,如果没有这样子的过滤器的话则返回空数组。这个数组的索引不是过滤器id, 你可以通过 filter_id() 去根据名称获取它们。
Example #1 一个 filter_list() 的例子
<?php
print_r(filter_list());
?>
以上例程的输出类似于:
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
)
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>';
?>
<?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