ホームページ >バックエンド開発 >PHPチュートリアル >PHP で「preg_replace(): Unknown Modifier」エラーが発生するのはなぜですか?

PHP で「preg_replace(): Unknown Modifier」エラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-31 17:51:10413ブラウズ

Why Am I Getting the

警告: preg_replace(): 不明な修飾子

概要

このエラーは、正規表現で使用されている修飾子が PHP によって認識されない場合に発生します。 preg_replace() function.

原因

一般的な原因には次の 2 つが含まれます:

  1. 区切り文字の欠落: 正規表現パターンが区切り文字で囲まれていません (例:スラッシュ、括弧)。
  2. エスケープなし区切り文字: パターンには、バックスラッシュ () を使用してエスケープせずに区切り文字が含まれています。

次のコードを考えてみましょう:

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

このコードでは、正規表現が不足しているためにエラーが発生する可能性があります。区切り文字:

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

解決策

1.区切り文字の追加:

パターンを有効な区切り文字で囲みます (例:

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

2)。区切り文字のエスケープ:

パターンに区切り文字が含まれる場合は、次を使用してエスケープします。

preg_replace "/foo[^/]+bar/i", "", ...

推奨事項

  • パターンに区切り文字が含まれる場合は、別の区切り文字を使用します。指定された区切り文字。
  • の使用を検討してください。 preg_quote() を使用して区切り文字を自動的にエスケープします。
  • 有効なオプションについては、PHP 正規表現区切り文字のドキュメントを参照してください。

以上がPHP で「preg_replace(): Unknown Modifier」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。