PHP Фильтры
Проверка данных = определить, если данные в правильной форме.
Очистка данных = удалите из данных любой недопустимый символ.
Расширение фильтра PHP
PHP фильтры используются для проверки и дезинфекции внешних входных данных.
Расширение PHP Filter имеет множество функций, необходимых для проверки вводимых пользователем данных, и разработан, чтобы сделать проверку данных проще и быстрее.
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>
Зачем использовать фильтры?
Многие веб-приложения получают внешний вход. Внешний вход/данные могут быть:
- Ввод данных пользователем из формы
- Печенье
- Данные веб-служб
- Переменные сервера
- Результаты запроса к базе данных
Вы всегда должны проверять внешние данные!
Недействительные отправленные данные могут привести к проблемам с безопасностью и сломать вашу веб-страницу!
Используя PHP-фильтры, вы можете быть уверены, что ваше приложение получит правильный вход!
Функция PHP filter_var ()
filter_var()
функция проверяет и очищает данные.
filter_var()
функция фильтрует одну переменную с указанным фильтром. Он принимает два куска данных:
- Переменная, которую требуется проверить
- Тип используемой проверки
Очистка строки
В следующем примере функция используется filter_var()
для удаления всех HTML-тегов из строки:
Пример
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Проверка целого числа
В следующем примере функция используется filter_var()
для проверки, является ли переменная $int целым числом. Если $int является целым числом,
выводимый ниже код будет: "целое число допустимо". Если $int не является целым числом, вывод будет: "целое число недопустимо":
Пример
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Совет: филтер_вар () и проблема с 0
В приведенном выше примере, если $int был установлен в 0, функция выше вернет "целое число недопустимо". Чтобы решить эту проблему, используйте код ниже:
Пример
<?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 = "[email protected]";
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate 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://html5css.ru";
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate 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-фильтр. Проверьте каждый фильтр, чтобы узнать, какие параметры и флаги доступны.
Ссылка содержит краткое описание и примеры использования для каждой функции!