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
Susan Sarandonoriginal
2024-12-31 17:51:10411parcourir

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)) ));

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

<div[^>]*><ul[^>]

Solution

1. Ajout de délimiteurs :

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

preg_replace "~<div[^>]*><ul[^>]~", "", ...

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", "", ...

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!

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