Я хочу заменить класс текстом div следующим образом:
Это: <div class="grid-flags" >FOO</div>
Становится: <div class="iconFoo" ></div>
Таким образом, класс изменяется на «иконку». ucfirst (strtolower (FOO)) и текст удаляется
Тест HTML
<div class="grid-flags" >FOO</div>
шаблон
'/class=\"grid-flags\" \>(FOO|BAR|BAZ)/e'
Замена
'class="icon'.ucfirst(strtolower($1).'"'
Это один пример замещающей строки, которую я пробовал, казалось бы, из сотен. Я читал, что модификатор / e оценивает код PHP, но я не понимаю, как он работает в моем случае, потому что мне нужны двойные кавычки вокруг имени класса, поэтому я не знаю, как это сделать.
Я пробовал варианты на backref, например. strtolower ('$ 1'), strtolower ('\ 1'), strtolower ('{$ 1}') *
Я пробовал одинарные и двойные кавычки, различные экранированные символы и т. Д., Но пока ничего не получалось.
Я даже попробовал preg_replace_callback () без удачи
function callback($matches){
return 'class="icon"'.ucfirst(strtolower($matches[0])).'"';
}