PHP 5 Фильтры
Курс по основам языка программирования PHP.
W3Schools на русском языке. Уроки для начинающих
Проверка данных = определяет, находятся ли данные в правильной форме.
Очистка данных = удаление любых недопустимых символов из данных.
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()
- фильтрует одну переменную с указанным фильтром. Требуется две части данных:
- Переменная, которую вы хотите проверить
- Тип используемой проверки
Очистить строку
В следующем примере функция filter_var()
используется для удаления всех HTML тегов из строки:
Пример
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Выполнить пример »
Проверить целое число
В следующем примере функция 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");
}
?>
Выполнить пример »
Очистка и проверка email адреса
В следующем примере используется функция 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 действительный email адрес");
} else {
echo("$email не действительный email адрес");
}
?>
Выполнить пример »
Очистка и проверка 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 является валидным URL");
} else {
echo("$url не является валидным URL");
}
?>
Выполнить пример »
PHP Фильтры. Полный справочник
Полный справочник всех функций фильтра приведен в PHP Фильтры. Справочник. Проверьте каждый фильтр, чтобы узнать, какие параметры и метки доступны.
Справочник содержит краткое описание и примеры использования для каждой функции!
Не выкладывайте свой код непосредственно в комментариях, он отображается некорректно. Воспользуйтесь такими сервисами, как jsfiddle.net, codepen.io, liveweave.com, jsbin.com, сохраните код на любом из этих сервисов и в комментариях дайте на него ссылку. Так будет виден и код, и результат.