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