Maison >développement back-end >Problème PHP >Comment échapper aux caractères spéciaux réguliers en php

Comment échapper aux caractères spéciaux réguliers en php

藏色散人
藏色散人original
2020-10-20 09:18:134629parcourir

Comment échapper aux caractères spéciaux réguliers en PHP : créez d'abord un exemple de fichier PHP ; puis définissez la chaîne ; enfin échappez les caractères spéciaux via des barres obliques inverses et analysez les variables.

Comment échapper aux caractères spéciaux réguliers en php

Recommandé : "Tutoriel vidéo PHP"

Questions

Expressions régulières PHP récemment utilisées, J'ai rencontré quelques problèmes lors de l'écriture de chaînes d'expression. Je ne sais pas quand je dois utiliser la barre oblique inverse "".

Chaîne PHP

Il existe 4 façons de définir une chaîne PHP :

  • Guillemets simples
  • Guillemets doubles
  • Syntaxe hérdoc structure
  • structure de la syntaxe nowdoc (depuis PHP 5.3.0)

Lors de la définition d'une chaîne, les caractères spéciaux seront échappés et les variables seront analysées.

Les caractères spéciaux incluent :

项目 内容 备注
换行 n LF 或 0x0A
回车 r CR 或 0x0D
水平制表符 t HT 或 0x09
垂直制表符 v VT 或 0x0B
换页 f FF 或 0x0C
反斜杠 \  
美元符号 $  
双引号 "  
单引号 '  
8进制字符 [0-7]{1,3}  
16进制字符 x[0-9A-Fa-f]{1,2}  

Voir le manuel PHP pour plus de détails sur cette partie. Voici une brève description :

Dans les guillemets simples, échappez le guillemet simple (') et la barre oblique inverse (), et affichez la signification originale des autres caractères

Dans les guillemets doubles, les caractères spéciaux à l'exception des guillemets doubles (") sont échappés et les variables sont analysées.

Par conséquent, dans ces deux définitions de chaîne courantes, la barre oblique inverse ( ) doit toujours être échappée.

Expressions régulières PHP

PHP fournit deux ensembles de bibliothèques de fonctions d'expressions régulières : [Référence]

Un ensemble est fourni par la bibliothèque PCRE (Perl Compatible Regular Expression) nommée avec le. préfixe "preg_";

Un ensemble de fonctions fournies par les extensions POSIX (Portable Operating System Interface of Unix) (fonctions PHP par défaut

les expressions régulières fournissent des fonctions de correspondance, de remplacement et de fractionnement). 🎜>

Utilise actuellement uniquement des fonctions régulières de style Perl, et seuls ce type de chaînes sont expliqués ci-dessous 🎜>

Expression régulière de style Perl, devant être contenue dans des délimiteurs ("/). " ou "#"), comme suit : [Référence]

$str = 'http://www.youku.com/show_page/id_ABCDEFG.html';
$regex = '/^http:\/\/([\w.]+)\/([\w]+)\/([\w]+)\.html$/i';
$regex = '#^http://([\w.]+)/([\w]+)/([\w]+)\.html$#i';

Pour Pour diviser une URL, la variable $regex définit la chaîne d'expression régulière :

^http://([w .]+)/([w]+)/([w]+). html$

Cette chaîne contient des caractères spéciaux, tels que "/" et ".", qui doivent être échappés et défini avec une barre oblique inverse ("") dans le style Perl, comme suit :

^http://([w.]+)/([w]+)/([w]+).html$

En même temps, cette chaîne doit être incluse dans le délimiteur , il existe donc les deux types d'expressions ci-dessus ; avec "#" comme délimiteur, il n'est pas nécessaire d'échapper au "/"

échappement d'expression régulière

Dans les expressions régulières, pour correspondre aux caractères simples suivants, ils doivent être échappés avec une barre oblique inverse ("") :

"", "?", "*", "^", " $", "+", "(", ")", "|", "{", "["

Dans les expressions régulières de style Perl, si le Le caractère unique suivant correspond, ou celui ci-dessus ne l'est pas. Le caractère unique correspondant doit également être échappé avec une barre oblique inverse ("") :

^=}]/:a8093152e673feb7aba1828c43532094.'"

Résumé

Pour écrire une chaîne d'expression régulière de style Perl correcte, trois étapes sont nécessaires :

Écrivez l'expression régulière correcte, faites attention à l'échappement des caractères spéciaux

dans le caractère délimiteur et échappez-le à l'aide des règles d'échappement de style Perl

Échapper le contenu de la chaîne ci-dessus selon la définition de chaîne 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