Maison > cadre php > PensezPHP > le corps du texte

thinkphp I introduction à la méthode

Libérer: 2020-05-10 09:03:02
avant
3284 Les gens l'ont consulté

thinkphp I introduction à la méthode

Comme vous pouvez le constater, la méthode I est un nouveau membre des nombreuses fonctions à une seule lettre de ThinkPHP. Son nom vient de l'anglais Input (input) et est principalement utilisé pour plus de commodité. et la sécurité. Obtenez les variables d'entrée du système, qui peuvent être utilisées n'importe où. Le format d'utilisation est le suivant :

I('变量类型.变量名',['默认值'],['过滤方法'])
Copier après la connexion

Le type de variable fait référence à la méthode de requête ou au type d'entrée, notamment :

<🎜. >thinkphp I introduction à la méthode

Remarque : les types de variables ne sont pas sensibles à la casse.

Les noms de variables sont strictement sensibles à la casse.

La valeur par défaut et la méthode de filtrage sont des paramètres facultatifs.

Utilisation

Prenons le type de variable GET comme exemple pour illustrer l'utilisation de la méthode I :

echo I(&#39;get.id&#39;); // 相当于 $_GET[&#39;id&#39;]
echo I(&#39;get.name&#39;); // 相当于 $_GET[&#39;name&#39;]
Copier après la connexion

prend en charge les valeurs par défaut :

echo I(&#39;get.id&#39;,0); // 如果不存在$_GET[&#39;id&#39;] 则返回0
echo I(&#39;get.name&#39;,&#39;&#39;); // 如果不存在$_GET[&#39;name&#39;] 则返回空字符串
Copier après la connexion

utilise filtrage des méthodes :

echo I(&#39;get.name&#39;,&#39;&#39;,&#39;htmlspecialchars&#39;); // 采用htmlspecialchars方法对$_GET[&#39;name&#39;] 进行过滤,如果不存在则返回空字符串
Copier après la connexion

prend en charge l'obtention directe du type de variable entier, par exemple :

I(&#39;get.&#39;); // 获取整个$_GET 数组
Copier après la connexion

De la même manière, nous pouvons obtenir des variables de type post ou d'autres entrées, par exemple :

I(&#39;post.name&#39;,&#39;&#39;,&#39;htmlspecialchars&#39;); // 采用htmlspecialchars方法对$_POST[&#39;name&#39;] 进行过滤,如果不存在则返回空字符串
I(&#39;session.user_id&#39;,0); // 获取$_SESSION[&#39;user_id&#39;] 如果不存在则默认为0
I(&#39;cookie.&#39;); // 获取整个 $_COOKIE 数组
I(&#39;server.REQUEST_METHOD&#39;); // 获取 $_SERVER[&#39;REQUEST_METHOD&#39;]
Copier après la connexion

param variable Type est une méthode d'acquisition de variable spécifique au framework qui prend en charge la détermination automatique du type de requête actuel, par exemple :

echo I(&#39;param.id&#39;);
Copier après la connexion

Si le type de requête actuel est GET, il est équivalent à $_GET[' id'], si le type de requête actuel est POST ou PUT, cela équivaut à obtenir $_POST['id'] ou l'identifiant du paramètre PUT.

Et les variables de type param peuvent également utiliser un index numérique pour obtenir les paramètres d'URL (le paramètre du mode PATHINFO doit être valide, qu'il s'agisse de GET ou de POST), par exemple :

L'adresse URL d'accès actuelle est

http://serverName/index.php/New/2013/06/01
Copier après la connexion

, alors nous pouvons passer

echo I(&#39;param.1&#39;); // 输出2013
echo I(&#39;param.2&#39;); // 输出06
echo I(&#39;param.3&#39;); // 输出01
Copier après la connexion

En fait, l'écriture du type de variable param peut être simplifiée comme :

I(&#39;id&#39;); // 等同于 I(&#39;param.id&#39;)
I(&#39;name&#39;); // 等同于 I(&#39;param.name&#39;)
Copier après la connexion

Filtrage des variables<. 🎜>Lors de l'utilisation de la méthode I, les variables passent en fait par deux filtres. Le premier est le filtrage global. Le filtrage global se fait en configurant le paramètre VAR_FILTERS. Il faut noter ici qu'après la version 3.1, le mécanisme de filtrage du. Le paramètre VAR_FILTERS a été modifié pour utiliser la récursion de la méthode array_walk_recursive. Filtré, la principale exigence pour la méthode de filtrage est qu'elle doit être renvoyée par référence, donc la définition de htmlspecialchars ici n'est pas valide. Vous pouvez personnaliser une méthode, par exemple :

function filter_default(&$value){
    $value = htmlspecialchars($value);
 }
Copier après la connexion
.

puis configurez :

&#39;VAR_FILTERS&#39;=>&#39;filter_default&#39;
Copier après la connexion

si nécessaire Pour effectuer plusieurs filtrages, vous pouvez utiliser :

&#39;VAR_FILTERS&#39;=>&#39;filter_default,filter_exp&#39;
Copier après la connexion

La méthode filter_exp est une méthode de filtrage de sécurité intégrée au framework, qui permet d'empêcher attaques par injection utilisant la fonction EXP du modèle.

Parce que le paramètre VAR_FILTERS définit un mécanisme de filtrage global et utilise un filtrage récursif, ce qui a un impact sur l'efficacité, nous recommandons donc de filtrer directement les variables, sauf dans la troisième étape de la méthode I. méthode de filtrage de paramétrage, vous pouvez également définir le filtrage en configurant le paramètre DEFAULT_FILTER En fait, le réglage par défaut de ce paramètre est :

&#39;DEFAULT_FILTER&#39;        => &#39;htmlspecialchars&#39;
Copier après la connexion

Autrement dit, toutes les variables d'acquisition de la méthode I seront filtrées par htmlspecialchars. , alors :

I(&#39;get.name&#39;); // 等同于 htmlspecialchars($_GET[&#39;name&#39;])
Copier après la connexion

De même, ce paramètre peut également prendre en charge plusieurs filtres, par exemple :

&#39;DEFAULT_FILTER&#39;        => &#39;strip_tags,htmlspecialchars&#39;
Copier après la connexion
I(&#39;get.name&#39;); // 等同于 htmlspecialchars(strip_tags($_GET[&#39;name&#39;]))
Copier après la connexion

Si nous spécifions la méthode de filtrage lors de l'utilisation de la méthode I, le paramètre de DEFAULT_FILTER sera ignoré, par exemple :

echo I(&#39;get.name&#39;,&#39;&#39;,&#39;strip_tags&#39;); // 等同于 strip_tags($_GET[&#39;name&#39;])
Copier après la connexion

Si le troisième paramètre de la méthode I est passé dans le nom de la fonction, cela revient à appeler la fonction pour filtrer la variable et la renvoyer (lorsque la variable est un tableau, array_map est automatiquement utilisé pour filtrage), sinon il appellera la méthode filter_var intégrée de PHP pour le traitement de filtrage, par exemple :

I(&#39;post.email&#39;,&#39;&#39;,FILTER_VALIDATE_EMAIL);
Copier après la connexion

signifie que $_POST['email'] sera formaté, et s'il ne répond pas aux exigences, un une chaîne vide sera renvoyée.

Ou vous pouvez utiliser l'identification de caractères suivante :

I(&#39;post.email&#39;,&#39;&#39;,&#39;email&#39;);
Copier après la connexion

Les noms de filtres pris en charge doivent être des valeurs valides dans la méthode filter_list (différents environnements de serveur peuvent être différents :<). 🎜>

int
  • booléen
  • float
  • validate_regexp
  • validate_url
  • validate_email
  • validate_ip
  • chaîne
  • dépouillé
  • codée
  • special_chars
  • unsafe_raw
  • email
  • url
  • number_int
  • number_float
  • magic_quotes
  • rappel
  • Dans certains cas particuliers Dans le cas où l'on ne souhaite effectuer aucun filtrage, même si DEFAULT_FILTER a été défini, on peut utiliser :
  • I(&#39;get.name&#39;,&#39;&#39;,NULL);
    Copier après la connexion
    Une fois le paramètre de filtrage mis à NULL, cela signifie qu'aucun filtrage ne sera plus effectué.

    Tutoriel recommandé : "

    TP5

    "

    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:
source:cnblogs.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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!