大文字の HTML タグを小文字のタグに置き換えるには、次のようにします。
$output = preg_replace("%<(/?[A-Z].*?)>%s",strtolower('$1'),$output);
マッチングは (私の RegEx テスト サイトで) うまく機能しているようですが、代替はそうではありません。
<EM>TEST</EM> becomes EMTEST/EM
誰かがこれについて正しい方向に向けてくれることを願っています。
呼び出しstrtolower
て"$1"
、結果(これも$1
また)を使用して置き換えます。
代わりにpreg_replace_callback
、コールバックを使用して次のようにします。function($m) {return strtolower($m[0]);}
$output = preg_replace("%<(/?[A-Z].*?)>%se", "'<' . strtolower('\\1') . '>'",$output);
編集:HTMLのものに使用してはならないpreg
ことを忘れていました:) DOMDocumentははるかに良い選択です。