PHP didn’t have a way to check or clean user input. Developers used scattered code—some wrote custom checks, others used regular expressions. That leads to bugs and security issues. That’s why filter_var came in PHP.
In this article, you will understand how it works and cover the syntax. You will also see examples and use cases. Let’s get started.
Understand the filter_var() Function in PHP
filter_var() is a PHP function used to filter a variable. It can either validate the data (check if it meets certain criteria) or sanitize it (remove unwanted characters). It helps you to make sure the user input is clean and safe.
Here is the syntax:
filter_var($value, $filter, $options )- $value: The data to be filtered.
- $filter: The type of filter. Can be a validation filter (
FILTER_VALIDATE_*), sanitization filter (FILTER_SANITIZE_*), or a custom filter (FILTER_CALLBACK). - $options: An optional array or bitmask of flags to modify the behavior of the filter.
So, why use it over manual validation?
You can use it to handle inputs rather than using the manual methods. Here are the reasons for usage:
- It provides a set of well-tested filters for common validation needs.
- It helps you to prevent security issues, like SQL injections or XSS, by sanitizing input automatically.
Let’s move on to the following section to see the common case of the filter_var function.
Examples and Common Cases
It checks if a string is a valid email address. It detects the general structure of the email and is it includes the “@” symbol and domain.
For example:
$email = '[email protected]';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Valid email!";
}The function checks if $email matches the format of a typical email address “[email protected]”.
You can also check if a string is a valid URL with FILTER_VALIDATE_URL. It checks for proper structure and includes the scheme (http://, https://, etc.) and domain.
Here is an example:
$url = 'https://flatcoding.com';
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo "Valid URL!";
}It verifies that the input is a correctly formatted URL before using it in an application, like linking to external websites.
Use FILTER_SANITIZE_STRING to remove unwanted characters, such as HTML or JavaScript tags, from a string.
Note: As of PHP 8.1.0, FILTER_SANITIZE_STRING is deprecated, but it’s still used in some legacy code.
For example:
$dirty_string = '<script>alert("hack")</script>';
$clean_string = filter_var($dirty_string, FILTER_SANITIZE_STRING);
echo $clean_string; The function strips HTML tags and potentially harmful content from $dirty_string. It leaves behind only plain text.
You can use also the FILTER_VALIDATE_INT to check if a string is a valid integer. You can also specify a range of acceptable values when you use the options array.
For example:
$number = '25';
$options = [
'options' => ['min_range' => 10, 'max_range' => 100]
];
if (filter_var($number, FILTER_VALIDATE_INT, $options)) {
echo "Valid number!";
}It makes sure that user input is a valid integer and within an acceptable range.
Wrapping Up
In this tutorial, you learned how filter_var() in PHP helps you to handle user input. You understood its syntax and use cases such as:
- Email validation.
- URLs.
- Strings sanitization.
- Integers validation.
Here is a quick recap:
filter_var()is used to either validate or sanitize data. It makes sure the input meets specified criteria or removes unwanted characters.- It offers well-tested filters and input validation. It also helps you to protect against security threats like XSS or SQL injection.
Thank you for reading. To see more PHP tutorials, click here.
What is the purpose of the filter_var() function in PHP?
How do you validate an email address using filter_var()?
$email = '[email protected]';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Valid email!";
}
This code checks if the $email variable contains a valid email address format. If it does, it outputs "Valid email!".Similar Reads
If you're coding in PHP you've most probably come across the terms 'parameters' and 'arguments' in functions. Well, they are…
In PHP, string operators, such as the concatenation operator (.) and its assignment variant (.=), are employed for manipulating and…
The OOP constructor initializes an object when it is created in PHP. Understand What a Constructor Is in PHP A…
PHP namespace solves the problem of name conflicts. Different developers may create functions-classes, or constants with the same name. PHP…
The PHP array_fill_keys function helps you to build an array where each key has the same value. What is the…
PHP added the array_map() function to help you apply one function to each item in an array. Understand the array_map…
When you first step into web development, one name seems to pop up everywhere: PHP. The PHP programming language has…
Sometimes, you may need to list collections with MongoDB in a PHP environment to manage or analyze your database structure.…
The array_diff function compares arrays and returns values that exist in the first array but not in the others in…
The PHP singleton design pattern makes sure that the class has only one instance and provides a global access point…