Перейти к содержимому

filter_input()

Введение

PHP — это популярный серверный язык скриптов, который предлагает набор встроенных функций для обработки пользовательского ввода. Одна из таких функций — filter_input(), предназначенная для фильтрации и очистки данных пользовательского ввода. В этой статье мы подробно расскажем, как использовать filter_input() в PHP, её синтаксис и преимущества.

Синтаксис

Синтаксис функции filter_input() выглядит следующим образом:

Синтаксис filter_input() в PHP

php
filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] ) : mixed

Функция принимает два обязательных параметра: $type (например, INPUT_GET или INPUT_POST) и $variable_name. Параметр $filter является необязательным и по умолчанию равен FILTER_DEFAULT. Необязательный четвёртый параметр $options можно использовать для указания дополнительных параметров фильтра. Функция возвращает отфильтрованные данные ввода при успехе, null, если переменная ввода не установлена, или false в случае ошибки.

Применение

Функция filter_input() используется для фильтрации и очистки данных пользовательского ввода перед их использованием в приложении. Например, следующий код использует filter_input() для очистки данных из формы:

Пример использования filter_input() в PHP

php
<?php

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if ($name === null) {
    // Handle missing input
    $name = '';
}

В этом примере код использует filter_input() с константой INPUT_POST для получения значения поля 'name' из формы, отправленной методом POST. Фильтр FILTER_SANITIZE_FULL_SPECIAL_CHARS используется для экранирования специальных символов. Обратите внимание, что FILTER_SANITIZE_STRING был удалён в PHP 8.0, поэтому вместо него следует использовать FILTER_SANITIZE_FULL_SPECIAL_CHARS или FILTER_SANITIZE_SPECIAL_CHARS.

Для целей валидации можно использовать фильтры, такие как FILTER_VALIDATE_EMAIL или FILTER_VALIDATE_INT. Они возвращают проверенные данные при успехе или false, если ввод не соответствует ожидаемому формату.

Преимущества

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

Кроме того, использование функций фильтрации помогает повысить общее качество кода, делая его более читаемым и поддерживаемым. Разделяя логику валидации и логику обработки, вы можете сделать код более модульным и упростить его отладку.

Заключение

Подводя итог, функция filter_input() является полезным инструментом для фильтрации и очистки данных пользовательского ввода в PHP-приложениях. Используя её в сочетании с другими функциями фильтрации, вы можете повысить безопасность и качество своего кода, а также упростить его чтение и поддержку.

Практика

Which of the following PHP functions are used to sanitize and validate forms?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.