Maison >développement back-end >tutoriel php >Pourquoi est-ce que je reçois l'erreur « Avertissement : preg_replace() : Modificateur inconnu » en PHP ?

Pourquoi est-ce que je reçois l'erreur « Avertissement : preg_replace() : Modificateur inconnu » en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-25 12:20:32987parcourir

Why Am I Getting the

Avertissement : preg_replace() : modificateur inconnu

Comprendre l'erreur

L'erreur "Avertissement : preg_replace( ) : Modificateur inconnu » se produit généralement lorsque vous spécifiez un modificateur non valide dans votre modèle d'expression régulière. Une expression régulière se compose d'un modèle et de modificateurs entourés de délimiteurs.

Causes de l'erreur

Il existe deux raisons courantes pour cette erreur :

  1. Délimiteurs manquants : Le modèle d'expression régulière n'est pas correctement enfermé dans délimiteurs.
  2. Délimiteurs sans échappement : Vous avez utilisé le caractère délimiteur à l'intérieur du motif sans l'échapper à l'aide d'une barre oblique inverse ().

Résolution

1. Ajouter des délimiteurs :

Si vous n'avez pas fourni de délimiteurs, placez simplement le modèle entre des délimiteurs valides, tels que /, #, ~ ou [].

Exemple :

preg_replace("/<div[^>]*><ul[^>]*>/", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)));

2. Échapper aux délimiteurs :

Si le motif contient le caractère délimiteur, échappez-le à l'aide d'une barre oblique inverse.

Exemple :

preg_replace("/foo[^/]+bar/i", "", "foo/bar");

3. Utilisez différents délimiteurs :

Si l'échappement des délimiteurs devient fastidieux, envisagez d'utiliser un délimiteur qui n'apparaît pas dans le modèle, tel que #.

Exemple :

preg_replace("#<div[^>]*><ul[^>]*>#", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)));

Ressources supplémentaires

  • [PHP Délimiteurs d'expressions régulières](https://www.php.net/manual/en/reference.pcre.pattern.syntax.php)
  • [Comment puis-je convertir des expressions ereg en preg en PHP ? (délimiteurs manquants)](https://stackoverflow.com/questions/2846236/how-can-i-convert-ereg-expressions-to-preg-in-php-missing-delimiters)
  • [Inconnu modificateur '/' dans …? qu'est-ce que c'est? (sur l'utilisation de preg_quote())](https://stackoverflow.com/questions/426482/unknown-modifier-in-what-is-it-on-using-preg-quote)

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