Проверка формата данных с помощью filter_var() в php
X
Заказать сайт
Заказать сайт

Проверка формата данных с помощью filter_var() в php

При работе с формами или другими данными, которые вы можете получать из БД или JSON ответах сервера важно проверять входящие значения на корректность. Например, где-то надо проверить, что пришло целое число, а где-то ссылку.

С большинством задач отлично справляется функция filter_var().

Синтаксис: filter_var (переменная [, фильтр [, опции фильтра ]] );

Чаще всего в этой функции подставляют "маски" фильтров, на которые нужно проверить переменнные. Но лучше всего это понять на примерах:

Проверяем на корректность ввод email-а

if(filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)) echo '<br>Email <i>корректен</i>'; else echo '<br>Email не корректен!';
//au@main.com, --12@site.s - корректны, сайт@ага.рф - не корректны

Проверка целого числа с диапазоном. Если убрать , array("options" => array("min_range"=>5, "max_range"=>10)) - то будет проверять только на целое/не целое число

if (filter_var(trim($_POST['intss']), FILTER_VALIDATE_INT, array("options" => array("min_range"=>5, "max_range"=>10))) === false) {
echo("<br>Значение переменной не входит в допустимый диапазон"); }
else { echo("<br>Значение <i>переменной в рамках допустимого диапазона</i>"); }

//7, 8 - корректны, 7.8, 12 - не корректны

Проверка корректности ссылки (она должна обязательно быть с http://)

if(filter_var($_POST['domen'], FILTER_VALIDATE_URL)) { echo ' <i>корректен</i>';
else echo ' введен не корректно!';
//http://ya.ru - корректен, ya.ru - не корректен

Проверка плавающего числа с диапазоном. 

if (filter_var(trim($_POST['float']), FILTER_VALIDATE_FLOAT)) {
echo("Yes"); }
else { echo("No"); }
//1, 0, 1.1, 1.4 - корректны; 1,3, 1,000 - не корректны

Также существуют другие проверки:

FILTER_VALIDATE_IP - корректность IP адреса

FILTER_VALIDATE_BOOLEAN - корректность булевого значения

FILTER_VALIDATE_REGEXP - проверяет регулярку

Кстати о регулярных выражениях и их практических примерах я писал ранее.

Таким образом, filter_var() позволяет проверять формат данных без помощи регулярных выражений. Используется это функция не часто, так как либо о ней не знают, либо больше доверяют регулярным выражениям. К тому же она не работает с кириллицей.

| | Проверка формата данных с помощью filter_var() в php | При работе с формами или другими данными, которые вы можете получать из БД или JSON ответах сервера важно проверять входящие значения на корректность. | https://blogprogram.ru/wp-content/uploads/2017/10/816-131x131.jpg