Maison >développement back-end >tutoriel php >Comment corriger l'erreur « Avertissement : preg_replace() : Modificateur inconnu » en PHP ?

Comment corriger l'erreur « Avertissement : preg_replace() : Modificateur inconnu » en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 12:02:21988parcourir

How to Fix the

Avertissement : preg_replace() : modificateur inconnu

Problème

Lorsque vous rencontrez un message d'erreur du type "Avertissement : preg_replace() : modificateur inconnu '] ' dans xxx.php à la ligne 38," cela implique généralement un délimiteur manquant ou un délimiteur non échappé dans votre fichier habituel. expression.

Cause

En PHP, les expressions régulières nécessitent une paire de délimiteurs, tels que /, # ou ~. Sans délimiteurs appropriés, le moteur d'expression régulière peut mal interpréter le modèle et les modificateurs, conduisant à l'erreur « Modificateur inconnu ». De plus, si le délimiteur apparaît dans le modèle regex sans être échappé, cela peut provoquer le même problème.

Résolution

Utilisation de délimiteurs :

Wrap votre modèle regex avec les délimiteurs appropriés. Par exemple, vous pouvez utiliser « ~ » dans le code que vous avez fourni :

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

Échapper aux délimiteurs :

Vous pouvez également échapper au délimiteur s'il apparaît dans le modèle regex en utilisant la barre oblique inverse ''. Par exemple :

preg_replace("/foo[^/]+bar/i", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)));

Conseils

  • Choisissez un délimiteur qui n'apparaît pas dans le modèle d'expression régulière pour éviter d'avoir besoin de s'échapper.
  • Envisagez d'utiliser preg_quote () pour échapper automatiquement à tous les caractères spéciaux dans le motif.

Supplémentaire Ressources

  • [Délimiteurs d'expressions régulières PHP](https://www.php.net/manual/en/regexp.reference.delimiters.php)
  • [Syntaxe des expressions régulières]( https://www.regular-expressions.info/php.html)

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