ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

PHP Учебник

PHP СТАРТ PHP Интро PHP Установка PHP Синтаксис PHP Комментарии PHP Переменные PHP Echo / Print PHP Типы данных PHP Строки PHP Числа PHP Математика PHP Константы PHP Операторы PHP If...Else...Elseif PHP Switch PHP Циклы PHP Функции PHP Массивы PHP Суперглобальные PHP RegEx

PHP Формы

PHP Обработка формы PHP Проверка формы PHP Обязательные поля формы PHP Форма URL/E-mail PHP Заполнение формы

PHP Расширенный

PHP Дата и время PHP Подключение файлов PHP Обработка файлов PHP Файл открыть/читать PHP Файл создать/записать PHP Файл Загрузить PHP Куки PHP Сессии PHP Фильтры PHP Расширенные фильтры PHP Callback функции PHP JSON PHP Исключения

PHP ООП

PHP Что такое ООП PHP классы/объекты PHP Конструктор PHP Деструктор PHP Модификаторы доступа PHP Наследование PHP Константы PHP Абстрактные классы PHP Интерфейсы PHP Трейты PHP Статические методы PHP Статические свойства PHP Пространства имён PHP Итерации

MySQL База данных

MySQL База данных MySQL Подключение MySQL Создать БД MySQL Создать таблицы MySQL Вставить данные MySQL Получить последний ID MySQL Вставить несколько записей MySQL Подготовленные инструкции MySQL Выбрать данные MySQL Where MySQL Order By MySQL Удаление данных MySQL Обновление данных MySQL Ограничение данных

PHP XML

PHP XML Парсеры PHP SimpleXML Парсер PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Интро AJAX PHP AJAX База данных AJAX XML AJAX Живой поиск AJAX Опрос

PHP Примеры

PHP Примеры PHP Компилятор PHP Викторина PHP Упражнения PHP Сертификат

PHP Справочник

PHP Обзор PHP Массив PHP Календарь PHP Дата PHP Каталог PHP Ошибка PHP Исключение PHP Файловая система PHP Фильтр PHP FTP PHP JSON PHP Ключевые слова PHP Libxml PHP Почта PHP Математика PHP Разное PHP MySQLi PHP Сеть PHP Output Control PHP RegEx PHP SimpleXML PHP Поток PHP Строка PHP Обработка переменных PHP XML Парсер PHP Zip PHP Часовые пояса

PHP. Уроки для начинающих

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 на русском. Проверьте каждый фильтр, чтобы увидеть, какие параметры и флажки доступны.

Справочник содержит краткое описание и примеры использования для каждой функции!