У меня есть следующие, чтобы заменить HTML-теги в верхнем регистре строчными.
$output = preg_replace("%<(/?[AZ].*?)>%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("%<(/?[AZ].*?)>%se", "'<' . strtolower('\\1') . '>'",$output);
Edit : забыл упомянуть, что вы НЕ должны использовать preg
для HTML-материала 🙂 DOMDocument – намного лучший выбор.