


Explication détaillée des fonctions couramment utilisées dans les expressions régulières PHP
Dans les articles précédents, nous avons découvert l'utilisation des expressions régulières php et la prise en main. Aujourd'hui, nous allons nous concentrer sur l'introduction des fonctions communes des expressions régulières php, les deux peuvent être utilisées. être utilisé parfaitement lorsqu'il est combiné ! !
1. preg_match()
Prototype de fonction :
int preg_match (string $pattern, string $content [, array $matches])
la fonction preg_match () recherche dans la chaîne $content une expression régulière qui correspond à l'expression régulière donnée par $pattern content . Si $matches est fourni, les résultats correspondants y sont placés. $matches[0] contiendra le texte qui correspond à l'intégralité du modèle, $matches[1] contiendra la première correspondance capturée de l'élément de modèle entre parenthèses, et ainsi de suite. Cette fonction n'effectue qu'une seule correspondance et renvoie finalement le nombre de résultats correspondants de 0 ou 1. Le listing 6.1 montre un exemple de code pour la fonction preg_match().
Code 6.1 Correspondance de date et d'heure
Le code est le suivant :
<?php //需要匹配的字符串。date函数返回当前时间 $content = "Current date and time is ".date("Y-m-d h:i a").", we are learning PHP together."; //使用通常的方法匹配时间 if (preg_match ("//d{4}-/d{2}-/d{2} /d{2}:/d{2} [ap]m/", $content, $m)) { echo "匹配的时间是:" .$m[0]. "/n"; } //由于时间的模式明显,也可以简单的匹配 if (preg_match ("/([/d-]{10}) ([/d:]{5} [ap]m)/", $content, $m)) { echo "当前日期是:" .$m[1]. "/n"; echo "当前时间是:" .$m[2]. "/n"; } ?>
Il s'agit d'un simple exemple de correspondance de chaîne de texte dynamique. En supposant que l'heure système actuelle est « 13 h 25 le 17 août 2006 », le contenu suivant sera affiché.
L'heure de correspondance est : 2006-08-17 01:25 pm
La date actuelle est : 2006-08-17
L'heure actuelle est : 01:25 pm
2 . ereg() et eregi()
ereg() est la fonction de correspondance pour les expressions régulières dans la bibliothèque d'extensions POSIX. eregi() est une version ignorant la casse de la fonction ereg(). Les deux ont des fonctions similaires à preg_match, mais la fonction renvoie une valeur booléenne indiquant si la correspondance a réussi ou non. Il convient de noter que le premier paramètre de la fonction de bibliothèque d'extension POSIX accepte une chaîne d'expression régulière, c'est-à-dire qu'aucun délimiteur n'est requis. Par exemple, le listing 6.2 est une méthode pour vérifier la sécurité des noms de fichiers.
Code 6.2 Contrôle de sécurité du nom de fichier
Le code est le suivant :
<?php $username = $_SERVER['REMOTE_USER']; $filename = $_GET['file']; //对文件名进行过滤,以保证系统安全 if (!ereg('^[^./][^/]*$', $userfile)) { die('这不是一个非法的文件名!'); } //对用户名进行过滤 if (!ereg('^[^./][^/]*$', $username)) { die('这不是一个无效的用户名'); } //通过安全过滤,拼合文件路径 $thefile = "/home/$username/$filename"; ?>
Normalement , L'utilisation de la fonction de correspondance d'expressions régulières compatible Perl perg_match() sera plus rapide que l'utilisation de ereg() ou eregi(). Si vous souhaitez simplement savoir si une chaîne contient une certaine sous-chaîne, il est recommandé d'utiliser la fonction strstr() ou strpos().
Remplacement des expressions régulières
1. ereg_replace() et eregi_replace()
Prototype de fonction :
string ereg_replace (string $pattern, string $replacement, string $string) string eregi_replace (string $pattern, string $replacement, string $string)
ereg_replace() recherche la chaîne de modèle $pattern dans $string et compare les résultats correspondants Remplacé avec $remplacement. Lorsque $pattern contient des unités de motif (ou sous-motifs), les positions dans $replacement telles que "/1" ou "$1" seront remplacées par le contenu correspondant à ces sous-motifs. Et "/0" ou "$0" fait référence au contenu de la chaîne entière correspondante. Il convient de noter que la barre oblique inverse est utilisée comme caractère d'échappement entre guillemets doubles, les formes "//0" et "//1" doivent donc être utilisées.
Les fonctions de eregi_replace() et ereg_replace() sont les mêmes, sauf que la première ignore la casse. Le code 6.6 est un exemple d'application de cette fonction. Ce code montre comment effectuer un travail de nettoyage simple sur le code source du programme.
Code 6.6 Nettoyer le code source
Le code est le suivant :
<?php $lines = file('source.php'); //将文件读入数组中 for($i=0; $i<count($lines); $i++) { //将行末以“//”或“#”开头的注释去掉 $lines[$i] = eregi_replace("(////|#).*$", "", $lines[$i]); //将行末的空白消除 $lines[$i] = eregi_replace("[ /n/r/t/v/f]*$", "/r/n", $lines[$i]); } //整理后输出到页面 echo htmlspecialchars(join("",$lines)); ?>
2. preg_replace()
Prototype de fonction :
mixed preg_replace (mixed $pattern, mixed $replacement, mixed $subject [, int $limit])
preg_replace est plus puissant que ereg_replace. Les trois premiers paramètres peuvent tous utiliser des tableaux ; le quatrième paramètre $limit peut définir le nombre de remplacements, et la valeur par défaut est de tout remplacer. Le code 6.7 est un exemple d'application de remplacement de tableau.
Code 6.7 Remplacement du tableau
Le code est le suivant :
<?php //字符串 $string = "Name: {Name}<br>/nEmail: {Email}<br>/nAddress: {Address}<br>/n"; //模式 $patterns =array( "/{Address}/", "/{Name}/", "/{Email}/" ); //替换字串 $replacements = array ( "No.5, Wilson St., New York, U.S.A", "Thomas Ching", "tom@emailaddress.com", ); //输出模式替换结果 print preg_replace($patterns, $replacements, $string); ?>
Les résultats de sortie sont les suivants.
Name: Thomas Ching", Email: tom@emailaddress.com Address: No.5, Wilson St., New York, U.S.A
Le modificateur de motif "e" peut être utilisé dans l'expression régulière de preg_replace. Sa fonction est d'utiliser le résultat correspondant comme expression et peut être réutilisée. Par exemple :
Le code est le suivant :
<?php $html_body = “<HTML><Body><H1>TEST</H1>My Picture<Img src=”my.gif”></Body></HTML>”; //输出结果中HTML标签将全部为小写字母 echo preg_replace ( "/(<//?)(/w+)([^>]*>)/e", "'//1'.strtolower('//2').'//3'", //此处的模式变量//2将被strtolower转换为小写字符 $html_body); ?>
Résumé :
La fonction preg_replace utilise une expression régulière compatible Perl syntaxe, généralement une alternative plus rapide à ereg_replace. Si vous souhaitez uniquement effectuer un simple remplacement d'une chaîne, vous pouvez utiliser la fonction str_replace.
Recommandations associées :
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
