Вопрос по html, simple-html-dom, html5, php – Как добавить пользовательские атрибуты с помощью PHP Simple HTML DOM Parser

2

Я работаю с проектом, который требует использования PHP Simple HTML Dom Parser, и мне нужен способ добавить пользовательский атрибут для ряда элементов на основе имени класса.

Я могу циклически проходить по элементам с помощью цикла foreach, и было бы легко установить стандартный атрибут, такой как href, но я не могу найти способ добавить пользовательский атрибут.

Самое близкое, что я могу догадаться, что-то вроде:

foreach($html -> find(".myelems") as $element) {
     $element->myattr="customvalue";
}

но это не работает

Я видел ряд других вопросов на подобные темы, но все они предлагают использовать альтернативный метод для анализа html (domDocument и т. Д.). В моем случае это не вариант, так как я должен использовать Simple HTML DOM Parser.

Ваш Ответ

1   ответ
5

добавление тегов данных).

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>

Похожие вопросы