2

大文字の HTML タグを小文字のタグに置き換えるには、次のようにします。

$output = preg_replace("%<(/?[A-Z].*?)>%s",strtolower('$1'),$output);

マッチングは (私の RegEx テスト サイトで) うまく機能しているようですが、代替はそうではありません。

<EM>TEST</EM> becomes EMTEST/EM

誰かがこれについて正しい方向に向けてくれることを願っています。

4

2 に答える 2

3

呼び出しstrtolower"$1"、結果(これも$1また)を使用して置き換えます。

代わりにpreg_replace_callback、コールバックを使用して次のようにします。function($m) {return strtolower($m[0]);}

于 2012-04-26T03:47:23.253 に答える
1
$output = preg_replace("%<(/?[A-Z].*?)>%se", "'<' . strtolower('\\1') . '>'",$output);

編集:HTMLのものに使用してはならないpregことを忘れていました:) DOMDocumentははるかに良い選択です。

于 2012-04-26T03:59:35.067 に答える