Проверка (валидация)

Пример #1 Валидация e-mail адреса, используя функцию filter_var()

<?php
$email_a
= 'joe@example.com';
$email_b = 'bogus';

if (
filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo
"E-mail адрес '$email_a' указан верно.\n";
}
if (
filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo
"E-mail адрес '$email_b' указан верно.\n";
} else {
echo
"E-mail адрес '$email_b' указан неверно.\n";
}
?>

Результат выполнения приведённого примера:

E-mail адрес 'joe@example.com' указан верно.
E-mail адрес 'bogus' указан неверно.

Пример #2 Валидация IP-адреса, используя функцию filter_var()

<?php
$ip_a
= '127.0.0.1';
$ip_b = '42.42';

if (
filter_var($ip_a, FILTER_VALIDATE_IP)) {
echo
"IP-адрес '$ip_a' указан верно.";
}
if (
filter_var($ip_b, FILTER_VALIDATE_IP)) {
echo
"IP-адрес '$ip_b' указан верно.";
}
?>

Результат выполнения приведённого примера:

Адрес '127.0.0.1' указан верно.

Пример #3 Дополнительные параметры функции filter_var()

<?php
$int_a
= '1';
$int_b = '-1';
$int_c = '4';
$options = array(
'options' => array(
'min_range' => 0,
'max_range' => 3,
)
);
if (
filter_var($int_a, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo
"Число A '$int_a' является верным (от 0 до 3).\n";
}
if (
filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo
"Число B '$int_b' является верным (от 0 до 3).\n";
}
if (
filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo
"Число C '$int_c' является верным (от 0 до 3).\n";
}

$options['options']['default'] = 1;
if ((
$int_c = filter_var($int_c, FILTER_VALIDATE_INT, $options)) !== FALSE) {
echo
"Число C '$int_c' является верным (от 0 и 3).";
}
?>

Результат выполнения приведённого примера:

Число A '1' является верным (от 0 до 3).
Число C '1' является верным (от 0 до 3).

add a note add a note

User Contributed Notes 3 notes

up
1
nora@nora
3 years ago
this function gives true to nora@nora  when ther is no "extension" .com
up
-3
Anonymous
7 years ago
the problem listed before with the e-mail address: gnix@lineone.netsteve.gynes@lane4.co.uk being flagged as valid seems to not be a problem anymore, at least not on 5.6.30
up
-32
dows
6 years ago
It considers umlauts-domains as invalid.

test@täst.de -> false
täst@test.de -> false
To Top