Maison  >  Article  >  développement back-end  >  Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)

Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)

WBOY
WBOYoriginal
2021-10-29 18:04:192545parcourir

Dans l'article précédent, je vous ai présenté "Apprentissage des formulaires PHP : utilisation et différences des variables $_GET et $_POST", qui vous a donné des connaissances détaillées sur les variables $_GET et $_POST en PHP, dans cet article, nous. Je vais jeter un œil aux connaissances liées aux filtres en PHP, dans l'espoir d'aider tout le monde !

Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)

Dans l'article précédent, nous avons découvert la variable $_GET et la variable $_POST Parmi elles, des problèmes de sécurité ont été mentionnés dans cet article. Les filtres abordés dans cet article sont utilisés pour vérifier et filtrer les données provenant de sources non sécurisées, telles que les entrées de l'utilisateur. Jetons ensuite un coup d'œil aux connaissances pertinentes sur les filtres en PHP, jetons un coup d'œil. $_GET 变量与$_POST 变量的相关知识,其中有提到关于安全性的问题,本篇文章中所要讲到的PHP过滤器就是用于验证和过滤来自非安全来源的数据,比如用户的输入。那接下来我们就来看一下PHP中的过滤器的相关知识,一起看看吧。

PHP过滤器

什么是过滤器,可以先把过滤器简单的理解为过滤掉不安全的数据。那我们为什么要使用过了不起呢?在我们的日常开发中几乎所有的Web应用程序都会依赖外部的输入,这些数据通常都是来自类似Web服务的其他应用程序或者来自用户。我们通过过滤器的使用能够确保应用程序能够获得正确的输入类型。

我们应该对像来自表单的输入数据、Cookies、服务器变量和数据库查询结果等这样的外部数据进行过滤,对输入进行过滤是很重要的,因此我们需要使用过滤器。

PHP过滤器是用于验证和过滤来自非安全来源的数据,是测试、验证和过滤用户输入或者自定义数据时任何Web应用程序的重要组成部分,它的设计目的就是为了是数据处理更轻松快捷。

函数和过滤器

当我们需要过滤变量的时候,可以使用很多过滤函数:filter_var() 通过一个指定的过滤器来过滤单一的变量;filter_var_array() 通过相同的或不同的过滤器来过滤多个变量;filter_input获取一个输入变量,并对它进行过滤;filter_input_array获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤。

接下来我们通过一个示例来看一下通过filter_var() 函数验证了一个整数,示例如下:

<?php
header("Content-type:text/html;charset=utf-8");
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
    echo("不是一个合法的整数");
}
else
{
    echo("是个合法的整数");
}
?>

输出结果:

Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)

上述示例便是通过filter_var() 过滤函数来验证了一个整数,接下来看一下我们常用的两种过滤器。

  • <strong>Validating</strong> 过滤器:用于验证用户输入,有着严格的格式规则(比如 URL 或 E-Mail 验证),如果成功则返回预期的类型,如果失败则返回 FALSE。

  • <strong>Sanitizing</strong> 过滤器:用于允许或禁止字符串中指定的字符,无数据格式规则,始终返回字符串。

选项和标志

选项和标志用于向指定的过滤器添加额外的过滤选项。不同的过滤器有不同的选项和标志。

接下来我们通过示例来看一下用 filter_var() "min_range" 以及 "max_range" 选项验证了一个整数,示例如下:

<?php
header("Content-type:text/html;charset=utf-8");
$var=300;
$int_options = array(
    "options"=>array
    (
        "min_range"=>0,   //最小值
        "max_range"=>256  //最大值
    )
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
    echo("不是一个合法的整数");
}
else
{
    echo("是个合法的整数");
}
?>

输出结果:

Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)

在上述示例中,需要注意的是:就像上面的代码一样,选项必须放入一个名为 "options" 的相关数组中。如果使用标志,则不需在数组内。由于整数是 "300",它不在指定的范围内,所以输出结果如上。

验证输入

接下来让我们试着验证来自表单的输入。我们需要做的第一件事情是确认是否存在我们正在查找的输入数据。然后我们用 filter_input()

Filtre PHP

Qu'est-ce qu'un filtre, vous pouvez d'abord Filtrer sont simplement compris comme le filtrage des données dangereuses. Alors pourquoi utilisons-nous Weiwei ? Dans notre développement quotidien, presque toutes les applications Web s'appuient sur des entrées externes. Ces données proviennent généralement d'autres applications comme les services Web ou des utilisateurs. Grâce à l'utilisation de filtres, nous pouvons garantir que l'application obtient le bon type d'entrée.

Nous devons filtrer les données externes telles que les données d'entrée des formulaires, les cookies, les variables du serveur, les résultats des requêtes de base de données, etc. Il est important de filtrer les entrées, nous devons donc utiliser des filtres.

Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)Les filtres PHP sont utilisés pour valider et filtrer les données provenant de sources non sécurisées. Ils constituent une partie importante de toute application Web lors du test, de la validation et du filtrage des entrées utilisateur ou des données personnalisées. rapide.

Fonctions et filtres

🎜Lorsque nous avons besoin de filtrer des variables, nous pouvons utiliser de nombreuses fonctions de filtre : filter_var() Filtre une seule variable via un filtre spécifié ; filter_var_array() Filtre plusieurs variables via des filtres identiques ou différents filter_input Obtient une variable d'entrée ; et le filtre ; filter_input_arrayObtient plusieurs variables d'entrée et les filtre à travers des filtres identiques ou différents. 🎜🎜Ensuite, prenons un exemple pour vérifier un entier via la fonction filter_var() . L'exemple est le suivant : 🎜
<?php
header("Content-type:text/html;charset=utf-8");
if(!filter_has_var(INPUT_GET, "email"))
{
    echo("没有 email 参数");
}
else
{
    if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
    {
        echo "不是一个合法的 E-Mail";
    }
    else
    {
        echo "是一个合法的 E-Mail";
    }
}
?>
🎜Résultat de sortie :
🎜🎜Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)🎜🎜L'exemple ci-dessus passe par filter_var() fonction de filtre Vérifions un entier. Examinons ensuite les deux filtres couramment utilisés. 🎜
  • 🎜<strong>Filtre de validation</strong> : utilisé pour valider les entrées de l'utilisateur, a des règles de format strictes (telles que la vérification d'URL ou d'e-mail), renvoie le type attendu en cas de succès et renvoie FALSE en cas d'échec. 🎜
  • 🎜<strong>Filtre de désinfection</strong> : utilisé pour autoriser ou interdire les caractères spécifiés dans une chaîne, aucune règle de format de données, toujours renvoie une chaîne. 🎜
🎜Options et drapeaux
🎜🎜Les options et les drapeaux sont utilisés pour spécifier Les filtres ajoutent des options de filtrage supplémentaires. Différents filtres ont différentes options et indicateurs. 🎜🎜Ensuite, prenons un exemple pour vérifier un entier en utilisant les options filter_var() et "min_range" et "max_range" , exemple As suit : 🎜
<?php
header("Content-type:text/html;charset=utf-8");
if(!filter_has_var(INPUT_GET, "url"))
{
    echo("没有 url 参数");
}
else
{
    $url = filter_input(INPUT_GET,
        "url", FILTER_SANITIZE_URL);
    echo $url;
}
?>
🎜Résultat de sortie :
🎜🎜Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)🎜🎜Dans l'exemple ci-dessus, il est important de noter que tout comme le code ci-dessus, les options doivent être placées dans un tableau associé appelé "options". Si vous utilisez des indicateurs, ils n'ont pas besoin d'être dans un tableau. Puisque l’entier est « 300 », il n’est pas dans la plage spécifiée, le résultat est donc comme ci-dessus. 🎜🎜Valider la saisie
🎜🎜Essayons ensuite de valider la saisie du formulaire. La première chose que nous devons faire est de confirmer que les données d’entrée que nous recherchons existent. Ensuite, nous utilisons la fonction filter_input() pour filtrer les données d'entrée. 🎜🎜Ensuite, prenons un exemple pour voir comment la variable d'entrée "email" est transmise à la page PHP à l'aide de GET. L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜À quoi nous devons prêter attention. est : l'exemple ci-dessus est : Une variable d'entrée (email) transmise via la méthode "GET", vérifie s'il existe une variable d'entrée "email" de type "GET", et s'il existe une variable d'entrée, vérifie s'il s'agit d'un Adresse e-mail valable. 🎜

净化输入

让我们试着清理一下从表单传来的 URL。首先,我们要确认是否存在我们正在查找的输入数据。然后,我们用 filter_input() 函数来净化输入数据。

下面我们通过示例来看一下输入变量 "url" 被传到 PHP 页面,示例如下:

<?php
header("Content-type:text/html;charset=utf-8");
if(!filter_has_var(INPUT_GET, "url"))
{
    echo("没有 url 参数");
}
else
{
    $url = filter_input(INPUT_GET,
        "url", FILTER_SANITIZE_URL);
    echo $url;
}
?>

输出结果:

Vous guide à travers les filtres PHP en trois minutes (exemples détaillés)

其中我们需要注意的是:

FILTER_SANITIZE_URL 过滤器删除字符串中所有非法的 URL 字符。上面的实例有一个通过 "GET" 方法传送的输入变量 (url):检测是否存在 "GET" 类型的 "url" 输入变量,如果存在此输入变量,对其进行净化(删除非法字符),并将其存储在 $url 变量中。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于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:
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