私はこのコードを持っています
function a($menu_item, $remove_link) {
$pattern = 'class="(.+)"(.+)<a.+>(.+)</a>';
if($remove_link) {
return preg_replace($pattern, 'class="$1 selected"$2$3', $menu_item); //<- line 6
}
return $menu_item;
}
$remove_link
これは基本的に真かどうかをチェックし、リンクを削除してクラス定義を追加します$menu_item
たとえば、私が使用する場合
$menu_item = '<li class="menuitem first"><a href="index.php">Home</a></li>';
$menu_item = a($menu_item, true);
返すべき
<li class="menuitem first selected">Home</li>;
正規表現はテストされており、Notepad ++ で動作しますが、私の関数は次のエラーを出しています:
Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in functions.php on line 6
PHPパターンはスラッシュで「区切る」必要があることがわかったので、 class="/(.+)"(.+)<a.+>(.+)/</a>
代わりに使用しようとしましたが、同じエラーが発生します。
私は何が欠けていますか?区切り記号を正しく使用するにはどうすればよいですか?