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

藏色散人
Libérer: 2023-04-10 16:46:02
avant
3913 Les gens l'ont consulté
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);
}
Copier après la connexion

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 存在");
}
Copier après la connexion

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";
}
Copier après la connexion

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));
Copier après la connexion

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");
 }
Copier après la connexion

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";
Copier après la connexion

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!

Étiquettes associées:
php
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal