Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON PHP КАК
     ❯   

PHP Учебник


PHP Формы


PHP Продвинутый


PHP ООП


MySQL База данных


PHP XML


PHP - AJAX


PHP Примеры


PHP Справочник



PHP Фильтры



Расширение PHP Filter

PHP-фильтры используются для проверки (валидации) и очистки (санитизации) небезопасных внешних данных (например, пользовательский ввод из форм, куки, веб-сервисов или запросов к базе данных).

Валидация данных = Проверяет, имеют ли данные правильную форму (например, правильный формат email, URL, целое число и т.д.).

Санитизация данных = Удаляет любые недопустимые символы из данных.

Всегда проверяйте внешние данные!

Небезопасные отправленные данные могут привести к проблемам безопасности и нарушить работу вашей веб-страницы!

Используя PHP-фильтры, вы можете быть уверены, что ваше приложение получает правильные входные данные!


Функции PHP-фильтров

Расширение PHP Filter имеет множество функций для проверки пользовательского ввода и предназначено для упрощения и ускорения проверки данных:

  • filter_var() - Фильтрует одну переменную указанным фильтром
  • filter_input() - Получает внешнюю переменную (например, из ввода формы) и фильтрует ее
  • filter_var_array() - Фильтрует несколько внешних переменных (массив)
  • filter_list() - Выводит список всех поддерживаемых имен и идентификаторов фильтров

Функция PHP filter_list()

Функция filter_list() используется для вывода списка всех поддерживаемых имен фильтров и их идентификаторов.

В следующем примере перечислены поддерживаемые имена фильтров и их идентификаторы в HTML-таблице:

Пример

<table>
  <tr>
    <th>Имя фильтра</th>
    <th>ID фильтра</th>
  </tr>
  <?php
  foreach (filter_list() as $id =>$filter) {
    echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>
</table>
Попробуйте сами »


Функция PHP filter_var()

Функция filter_var() фильтрует одну переменную указанным фильтром.

Синтаксис

filter_var(переменная, фильтр, опции);

Параметры:

  • var - Обязательный. Указывает переменную для фильтрации
  • filter - Необязательный. Указывает идентификатор или имя используемого фильтра
  • options - Необязательный. Указывает один или несколько флагов/опций для использования

Типы фильтров в PHP

В PHP существует два типа фильтров:

Валидирующие фильтры: Эти фильтры проверяют, соответствуют ли данные определенным критериям, но не изменяют сами данные. Возвращает false, если данные недействительны.

Примеры валидирующих фильтров:

  • FILTER_VALIDATE_EMAIL
  • FILTER_VALIDATE_URL
  • FILTER_VALIDATE_INT
  • FILTER_VALIDATE_IP

Очищающие фильтры: Эти фильтры удаляют недопустимые символы из данных и могут изменять входные данные.

Примеры очищающих фильтров:

  • FILTER_SANITIZE_EMAIL (удаляет недопустимые символы email)
  • FILTER_SANITIZE_URL (удаляет недопустимые символы URL)
  • FILTER_SANITIZE_NUMBER_INT (удаляет все символы, кроме цифр и знаков + -)

Для получения полного справочника по всем фильтрам перейдите к нашему Справочнику фильтров PHP.


Очистка и проверка email

В следующем примере используется функция filter_var() для сначала удаления всех недопустимых символов из переменной $email, а затем проверки, является ли она действительным email-адресом:

Пример

<?php
$email = "ivan.petrov@example.com";

// Удаляем недопустимые символы из email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Проверяем email
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.schoolsw3.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");
}
?>
Попробуйте сами »

Проверка целого числа

В следующем примере используется функция filter_var() для проверки, является ли переменная $int целым числом. Если $int — целое число, вывод будет: "Целое число действительное". Если $int не является целым числом, вывод будет: "Целое число НЕ действительное":

Пример

<?php
$int = 100;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Целое число действительное");
} else {
  echo("Целое число НЕ действительное");
}
?>
Попробуйте сами »

Совет: filter_var() и проблема с 0

В приведенном выше примере, если бы $int был установлен в 0, функция вернула бы "Целое число НЕ действительное". Чтобы решить эту проблему, используйте код ниже:

Пример

<?php
$int = 0;

if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Целое число действительное");
} else {
  echo("Целое число НЕ действительное");
}
?>
Попробуйте сами »

Проверка IP-адреса

В следующем примере используется функция filter_var() для проверки, является ли переменная $ip действительным IP-адресом:

Пример

<?php
$ip = "127.0.0.1";

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
  echo("$ip - действительный IP адрес");
} else {
  echo("$ip - НЕ действительный IP адрес");
}
?>
Попробуйте сами »

Полный справочник фильтров PHP

Для получения полного справочника по всем функциям фильтрации перейдите к нашему Справочнику фильтров PHP. Проверьте каждый фильтр, чтобы увидеть, какие опции и флаги доступны.

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



×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- © Copyright. Все права защищены. Schoolsw3 работает на SW3.CSS.