Я работаю с проектом, который требует использования PHP Simple HTML Dom Parser, и мне нужен способ добавить настраиваемый атрибут к нескольким элементам, основанным на имени класса.
Я могу прокрутить элементы с помощью цикла foreach, и было бы легко установить стандартный атрибут, такой как href, но я не могу найти способ добавить настраиваемый атрибут.
Самое близкое, что я могу догадаться, это что-то вроде:
foreach($html -> find(".myelems") as $element) { $element->myattr="customvalue"; }
но это не сработает.
Я видел ряд других вопросов по подобным темам, но все они предлагают использовать альтернативный метод для разбора html (domDocument и т. Д.). В моем случае это не вариант, так как я должен использовать Simple HTML DOM Parser.
Вы попробовали? Попробуйте этот пример (Пример: добавление тегов данных).
include 'simple_html_dom.php'; $html_string = ' <style>.myelems{color:green}</style> <div> <p class="myelems">text inside 1</p> <p class="myelems">text inside 2</p> <p class="myelems">text inside 3</p> <p>simple text 1</p> <p>simple text 2</p> </div> '; $html = str_get_html($html_string); foreach($html->find('div p[class="myelems"]') as $key => $p_tags) { $p_tags->{'data-index'} = $key; } echo htmlentities($html);
Вывод:
<style>.myelems{color:green}</style> <div> <p class="myelems" data-index="0">text inside 1</p> <p class="myelems" data-index="1">text inside 2</p> <p class="myelems" data-index="2">text inside 3</p> <p>simple text 1</p> <p>simple text 2</p> </div>