PHP Фильтры
Проверка данных = Определите, в правильной ли форме данные.
Обеззараживание (дезинфекция) данных = Удалите любой недопустимый символ из данных.
Расширение PHP фильтра
PHP фильтры используются для проверки и очистки внешнего ввода.
Расширение фильтра PHP имеет множество функций, необходимых для проверки пользовательского ввода, и предназначено для упрощения и ускорения проверки данных.
Функция filter_list()
может быть использована для просмотра списка расширений фильтра PHP:
Пример
<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</td>
</tr>
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
Попробуйте сами »
Зачем использовать фильтры?
Многие веб-приложения получают внешний вход. Внешний вход/данные могут быть:
- Пользовательский ввод из формы
- Cookies
- Данные веб-служб
- Серверные переменные
- Результаты запроса к базе данных
Вы всегда должны проверять внешние данные!
Неправильные данные могут привести к проблемам с безопасностью и сломать вашу веб-страницу!
Используя фильтры PHP, вы можете быть уверены, что ваше приложение получит правильный ввод!
PHP функция filter_var()
Функция filter_var()
проверки и дезинфекции данных.
Функция filter_var()
фильтрует одну переменную с указанным фильтром. Требуется две части данных:
- Переменная, которую вы хотите проверить
- Тип проверки для использования
Дезинфицировать строку (string)
В следующем примере функция filter_var()
используется для удаления всех HTML тегов из строки:
Пример
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Попробуйте сами »
Проверить целое число (integer)
В следующем примере используется функция filter_var()
чтобы проверить, является ли переменная $int целым числом. Если $int является целым числом, вывод приведенного ниже кода будет следующим: "Integer is valid" ("Целое число допустимо"). Если $int не является целым числом, вывод будет: "Integer is not valid" ("Целое число не допустимо"):
Пример
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Попробуйте сами »
Примечание: filter_var() и проблема с 0
В приведенном выше примере, если $int было установлено на 0, вышеприведённая функция вернёт "Integer is not valid". Чтобы решить эту проблему, используйте код ниже:
Пример
<?php
$int = 0;
if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Попробуйте сами »
Проверить IP адрес
В следующем примере используется функция filter_var()
чтобы проверить, является ли переменная $ip действительным IP-адресом:
Пример
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip is a valid IP address");
} else {
echo("$ip is not a valid IP address");
}
?>
Попробуйте сами »
Дезинфекция и проверка адреса электронной почты
В следующем примере используется функция filter_var()
чтобы сначала удалить все недопустимые символы из переменной $email, а затем проверить, является ли это действительный адрес электронной почты:
Пример
<?php
$email = "john.doe@example.com";
// Удалить все недопустимые символы из электронной почты
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Проверить e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
Попробуйте сами »
Дезинфекция и проверка URL
В следующем примере функция filter_var()
сначала удаляет все недопустимые символы из URL-адреса, а затем проверяет, является ли $url действительным URL-адресом:
Пример
<?php
$url = "https://www.w3schools.com";
// Удалить все недопустимые символы из URL
$url = filter_var($url, FILTER_SANITIZE_URL);
// Проверить url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
Попробуйте сами »
Полный справочник PHP Фильтров
Для более полного ознакомления со всеми функциями PHP фильтров, перейдите в главу Справочник PHP фильтров на нашем сайте W3Schools на русском. Проверьте каждый фильтр, чтобы увидеть, какие параметры и флажки доступны.
Справочник содержит краткое описание и примеры использования для каждой функции!