Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens l'erreur « preg_replace() : Unknown Modifier » en PHP ?

Pourquoi est-ce que j'obtiens l'erreur « preg_replace() : Unknown Modifier » en PHP ?

Susan Sarandon
Libérer: 2024-12-31 17:51:10
original
428 Les gens l'ont consulté

Why Am I Getting the

Attention : preg_replace() : Modificateur inconnu

Présentation

Cette erreur se produit lorsque les modificateurs utilisés dans une expression régulière ne sont pas reconnus par PHP Fonction preg_replace().

Causes

Deux causes courantes include :

  1. Délimiteurs manquants : le modèle d'expression régulière n'est pas entouré de délimiteurs (par exemple, barres obliques, crochets).
  2. Délimiteurs sans échappement : Le motif contient le caractère délimiteur sans l'échapper à l'aide d'une barre oblique inverse ().

Exemple

Considérez le code suivant :

echo str_replace("</ul></div>", "", preg_replace("<div[^>]*><ul[^>]*>", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)) ));
Copier après la connexion

Ce code peut produire l'erreur car les expressions régulières manquent de délimiteurs :

<div[^>]*><ul[^>]
Copier après la connexion

Solution

1. Ajout de délimiteurs :

Entourez le modèle avec des délimiteurs valides, tels que :

preg_replace "~<div[^>]*><ul[^>]~", "", ...
Copier après la connexion

2. Échapper aux délimiteurs :

Si le modèle contient le caractère délimiteur, échappez-le à l'aide de :

preg_replace "/foo[^/]+bar/i", "", ...
Copier après la connexion

Recommandations

  • Utilisez des délimiteurs différents si le modèle contient le délimiteur spécifié.
  • Envisagez d'utiliser preg_quote() pour échapper automatiquement délimiteurs.
  • Reportez-vous à la documentation des délimiteurs d'expressions régulières PHP pour connaître les options valides.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal