将大写html标记转换为小写

时间:2012-04-26 03:38:29

标签: php regex

我有以下内容用大写的HTML标签替换大写的HTML标签。

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

匹配似乎运行良好(在我的RegEx测试站点中),但替换不是。

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

希望有人能指出我正确的方向。

2 个答案:

答案 0 :(得分:3)

您正在strtolower上呼叫"$1",然后使用结果(再次只是$1)来替换。

相反,请使用preg_replace_callback并将回调设为:function($m) {return strtolower($m[0]);}

答案 1 :(得分:1)

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

编辑:忘了提及你应该使用preg来获取HTML东西:) DOMDocument是一个更好的选择。