PHP introduces the filter_list() function to give developers a way to check all available filters in the filter extension.
This helps you ensure compatibility. It allows dynamic input validation and promotes secure data processing without custom filter methods.
In this article, we will cover the following topics:
- What is the
filter_list
and how does it work? - How to improve input validation.
- The difference between filter_list and filter_id.
- Examples.
Let’s get started with how it works and its syntax.
Understand the filter_list
Function in PHP
The filter_list()
function in PHP is used to return a list of all the supported filters available in the PHP environment. Filters are used to sanitize or validate data, and this function helps you see the available ones.
Here is the syntax:
filter_list();
Here is a quick example:
$filters = filter_list();
foreach ($filters as $filter) {
echo $filter . "<br>";
}
How it works:
- It does not take any parameters.
- It returns an array of filter names that are supported by PHP.
- You can use these filters with functions like
filter_var()
orfilter_input()
to filter or validate data.
So, Why Use filter_list()
?
- That makes sure that you’re using available filters.
- Helps dynamically select filters.
- Improves security and prevents invalid input.
Use filter_list to Improve Input Validation in PHP
You can use filter_list()
to check available filters and apply them to the user input for better validation in PHP. Here’s how:
$filters = filter_list();
print_r($filters);
Output:
Array
(
[0] => int
[1] => boolean
[2] => float
[3] => validate_regexp
[4] => validate_domain
[5] => validate_url
[6] => validate_email
[7] => validate_ip
[8] => validate_mac
[9] => string
[10] => stripped
[11] => encoded
[12] => special_chars
[13] => full_special_chars
[14] => unsafe_raw
[15] => email
[16] => url
[17] => number_int
[18] => number_float
[19] => add_slashes
[20] => callback
)
Use filter_var()
and filter_input()
with available filters to validate user input. For example:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL);
$age = filter_input(INPUT_POST, "age", FILTER_VALIDATE_INT);
if ($email && $age !== false) {
echo "Valid email and age.";
} else {
echo "Invalid input.";
}
}
In this example, if you pass $_POST
with email
and age
, it should check if $_POST['age']
is an integer and $_POST['email']
is a valid email. If both are valid, it will print ‘Valid email and age’.
You need to take a look at these two articles on global variables: $_POST
and $_SERVER
to understand how they work.
Instead of hardcoding filter names, check available filters and apply them dynamically:
$available_filters = filter_list();
if (in_array("email", $available_filters)) {
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
echo $email ? "Valid Email" : "Invalid Email";
}
If you pass a valid email to $_POST, the output will be like this:
Valid Email
Let’s move on to the next section to understand the difference between filter_list
and filter_id
.
Understand the Difference Between filter_list and filter_id in PHP
Here is a table that shows you the different purposes of input filtering.
Function | Purpose | Returns |
---|---|---|
filter_list() | Lists all available filters | Array of filter names |
filter_id($name) | Gets the ID of a filter | Integer (filter ID) |
Use cases:
- Use
filter_list()
to check available filters. - Use
filter_id()
to get filter IDs for dynamic filtering.
Wrapping Up
In this article, you learned about the filter_list()
function in PHP and its role in input validation and data sanitization. Here’s a quick recap:
filter_list()
returns all available filters in PHP. It helps developers to check supported options.- Using
filter_list()
makes sure that you apply only valid filters. It improves security and data integrity. filter_var()
andfilter_input()
help apply these filters dynamically to validate and sanitize user input.filter_id()
retrieves the filter ID for a given filter name. It makes it useful for dynamic filtering.
FAQ’s
What is filter_list() in PHP?
How does filter_list() work?
$filters = filter_list();
print_r($filters);
How to use filter_list() for input validation?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL);
$age = filter_input(INPUT_POST, "age", FILTER_VALIDATE_INT);
echo ($email &amp;&amp; $age !== false) ? "Valid email and age." : "Invalid input.";
}