PHP 7.4.0 alpha 1 Released

Validation

Exemple #1 Validation d'adresses email avec filter_var()

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

if (
filter_var($email_aFILTER_VALIDATE_EMAIL)) {
    echo 
"L'adresse email '$email_a' est considérée comme valide.";
}
if (
filter_var($email_bFILTER_VALIDATE_EMAIL)) {
    echo 
"L'adresse email '$email_b' est considérée comme valide.";
} else {
    echo 
"L'adresse email '$email_b' est considérée comme invalide.";
}
?>

L'exemple ci-dessus va afficher :

L'adresse email 'joe@example.com' est considérée comme valide.
L'adresse email 'bogus' est considérée comme invalide.

Exemple #2 Validation d'adresses IP avec filter_var()

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

if (
filter_var($ip_aFILTER_VALIDATE_IP)) {
    echo 
"L'adresse IP '$ip_a' est considérée comme valide.";
}
if (
filter_var($ip_bFILTER_VALIDATE_IP)) {
    echo 
"L'adresse IP '$ip_b' est considérée comme valide.";
}
?>

L'exemple ci-dessus va afficher :

L'adresse IP '127.0.0.1' est considérée comme valide.

Exemple #3 Passage d'options à la fonction 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_aFILTER_VALIDATE_INT$options) !== FALSE) {
    echo 
"L'entier A 'int_a' est considéré comme valide (entre 0 et 3).\n";
}
if (
filter_var($int_bFILTER_VALIDATE_INT$options) !== FALSE) {
    echo 
"L'entier B 'int_b' est considéré comme valide (entre 0 et 3).\n";
}
if (
filter_var($int_cFILTER_VALIDATE_INT$options) !== FALSE) {
    echo 
"L'entier C 'int_c' est considéré comme valide (entre 0 et 3).\n";
}

$options['options']['default'] = 1;
if ((
$int_c filter_var($int_cFILTER_VALIDATE_INT$options)) !== FALSE) {
    echo 
"L'entier C 'int_c' est considéré comme valide (entre 0 et 3).";
}
?>

L'exemple ci-dessus va afficher :

L'entier A '1' est considéré comme valide (entre 0 et 3).
L'entier C '1' est considéré comme valide (entre 0 et 3).

add a note add a note

User Contributed Notes 4 notes

up
3
Anonymous
1 year 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
1
dows
1 year ago
It considers umlauts-domains as invalid.

test@täst.de -> false
täst@test.de -> false
up
-105
Stan
5 years ago
HP 5.3.3 and 5.2.14 had a bug (http://bugs.php.net/52929) related to FILTER_VALIDATE_EMAIL, which resulted in segfault when validating large values. Simple and safe workaround for this is using strlen() before filter_val(). I'm not sure about 5.3.4 final, but it is written that some 5.3.4-snapshot versions also were affected.

Originally posted here - http://stackoverflow.com/questions/5855811/how-to-validate-an-email-in-php#comment6729146_5855853.
up
-122
ghazouanijs at gmail dot com
4 years ago
invalid email skip this filter
example : gnix@lineone.netsteve.gynes@lane4.co.uk
To Top