Maison >développement back-end >tutoriel php >Un article expliquant en détail le filtrage des données PHP

Un article expliquant en détail le filtrage des données PHP

藏色散人
藏色散人avant
2021-09-12 16:32:483975parcourir
Lors du filtrage des données d'entrée utilisateur, vous écrivez généralement vos propres méthodes pour porter des jugements
Par exemple, lors de la vérification des e-mails, utilisez des expressions régulières
$pattern = "/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/";
if (!preg_match($pattern, $email)) {
        throw new \Exception(self::ERROR_PARAMETER_EMPTY . '_邮件格式有误:' . $email);
}

Si vous n'utilisez pas d'expressions régulières, y a-t-il d'autres méthodes simples ?

Utilisez les fonctions liées au filtre

filter_has_var(type, variable) s'il existe une variable du type spécifié.
filter_input obtient des entrées extérieures au script et les filtre.
filter_input_array obtient plusieurs entrées extérieures au script et les filtre.
filter_var récupère une variable et la filtre.
filter_var_array obtient plusieurs variables et les filtre.

filter_has_var

Déterminez si le résultat de $_GET contient le nom

if(!filter_has_var(INPUT_GET, "name"))
{
    echo("name 不存在");
}
else
{
    echo("name 存在");
}

filter_input

Regardez un exemple de vérification de l'e-mail

if (!filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL))
{
    echo "E-Mail is not valid";
}
else
{
    echo "E-Mail is valid";
}

filter_input_array

Filtrez toute la source d'entrée

$filters = array
(
    "name" => array
    (
        "filter"=>FILTER_CALLBACK,
        "flags"=>FILTER_FORCE_ARRAY,
        "options"=>"ucwords"
    ),
    "age" => array
    (
        "filter"=>FILTER_VALIDATE_INT,
        "options"=>array
        (
            "min_range"=>1,
            "max_range"=>120
        )
    ),
    "email"=> FILTER_VALIDATE_EMAIL,
);
print_r(filter_input_array(INPUT_POST, $filters));

filter_var, var_array

Aucune source d'entrée requise , Filtre directement la valeur

if(!filter_var("someone@example....com", FILTER_VALIDATE_EMAIL))
 {
 echo("E-mail is not valid");
 }
else
 {
 echo("E-mail is valid");
 }

Plage de source d'entrée

Vérification

Autres méthodes de filtrage

strip_tags Supprimer les balises html
htmlentities Convertir les caractères en entités HTML (convertir également la devise Représente la échapper de symboles tels que l'euro, la livre sterling, etc., les symboles de droit d'auteur, etc.)
La fonction htmlspecialchars convertit les caractères prédéfinis en entités HTML.
Les caractères prédéfinis sont :
& (esperluette) devient &
" (guillemet double) devient "
" (guillemet simple) devient '
< (inférieur à) devient <
(supérieur à) devient>

* Conseils : Si vous devez reconvertir des entités HTML spéciales en caractères, veuillez utiliser la fonction htmlspecialcharsdecode().


$input = "<span>我是标题</span>";
echo htmlspecialchars($input) . "\n";
echo htmlentities($input) . "\n";
echo strip_tags($input) . "\n";

$input = "-- 'select * from ";
echo addslashes($input) . "\n";

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer