Может ли кто-нибудь предложить лучший способ добавить класс CSS к элементу HTML с помощью PHP?Добавить класс CSS в HTML-тег с PHP regex
Мне нужно изменить строку, которая является содержанием сообщения WordPress. Если столбец имеет элемент фигуры в начале, я хочу извлечь тег открытия <figure>
элемента и добавить к нему класс «большого изображения» CSS, прежде чем возвращать его на место. Тег может иметь или не иметь атрибут класса (со значением в одинарных или двойных кавычках), и он может иметь другие атрибуты в разных порядках, поэтому я не могу просто использовать preg_replace: мне нужно вытащить тег и запустить его через некоторую логику с условиями, позволяющими использовать эти возможности.
Например, я мог бы иметь:
<figure id="foo" data-track="bar" class="fig">
или
<figure class='fig bah' id='foo' data-track='bar'>
или
<figure data-track="bar">
или просто
<figure>
Мне нужно только, чтобы сделать это, если эта цифра является первой вещью в содержании - если есть цифра где-нибудь еще, я его игнорировать. Я дошел до этого первого состояния
if (strpos(trim($content), '<figure') == 0) {
}
, но я немного озадачен тем, как его принять дальше. Мне кажется, мне нужна функция PHP, которая будет использовать регулярное выражение, чтобы найти первый <figure>
и разделить строку $ content в конце его открывающего тега, возвращая обе половины. Но, похоже, не существует такой функции - preg_split возвращает строку, деленную по шаблону, но не сам шаблон. Я был бы признателен за любой совет!
Edit = = = = = = = =
В ответ на вопрос Amit здесь пример желаемого ввода/вывода
<figure>
в <figure class="big-image">
<figure class='boo'>
в <figure class='big-image boo'>
<figure id="bar" class="boo">
до <figure id="bar" class="big-image boo">
Какой ожидается выход, для ввода? –
Амит, я добавлю к моему вопросу. –
Лучшим способом является использование парсера dom –