Cette fois, je vais vous apporter une explication détaillée de l'efficacité gourmande, non gourmande et du backtracking de l'utilisation de la régularité en PHP (avec code Remarques sur l'utilisation de la régularité en efficacité gourmande, non gourmande et du backtracking en PHP). De quoi s’agit-il ? Voici des cas concrets.
Tout d'abord, apprenons ce qu'est la gourmandise des expressions régulières et qu'est-ce que la non-gourmandise ? Ou qu'est-ce qu'un quantificateur de priorité correspondant et qu'est-ce qu'un quantificateur de priorité ignorant ?
D’accord, je ne sais pas quel est le concept. Donnons un exemple.
Un étudiant a voulu filtrer le contenu entre eux. C'est ainsi qu'il a rédigé les règles et procédures habituelles.
$str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪
Il semble qu'il n'y ait rien de mal à cela, mais en fait ce n'est pas le cas. Si
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>';
, alors après la procédure ci-dessus, le résultat est
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为 <script>alert(document.cookie)</script>
qui ne peut toujours pas obtenir l'effet souhaité. Ce qui précède n'est pas de la cupidité, et certains sont appelés paresse. Le signe du non gourmand est la quantité métacaractère suivi de ?, comme +?, *?, ?? (plus spécial, j'en parlerai dans les prochains blogs), etc. Autrement dit, cela signifie non gourmand. Si vous n'écrivez pas ?, cela signifie gourmand. Par exemple,
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为Derniers articles par auteur
2018-06-11 11:57:34 2018-06-15 15:55:18 2018-06-15 15:49:00 2018-06-15 15:46:15 2018-06-15 15:42:38 2018-06-15 15:40:34 2018-06-15 15:39:32 2018-06-15 15:37:14 2018-06-15 15:34:21 2018-06-15 15:22:51Derniers numérosBonjour ! Est-ce que "PHP Toolbox" est développé en utilisant PHP ? (Préparez-vous à apprendre PHP)Depuis 1970-01-01 08:00:00000nginx - Lequel dois-je utiliser entre php-fpm.sock et php-cgi.sock?Depuis 1970-01-01 08:00:00000Rubriques connexesPlus>
Comment ouvrir le fichier php
Comment supprimer les premiers éléments d'un tableau en php
Que faire si la désérialisation php échoue
Comment connecter PHP à la base de données mssql
Comment connecter PHP à la base de données mssql
Comment télécharger du HTML
Comment résoudre les caractères tronqués en PHP
Comment ouvrir des fichiers php sur un téléphone mobile