Как добавить класс в объект img в DOM, PHP? - PullRequest
6 голосов
/ 14 августа 2011

Вот кусок кода

$doc = new DOMDocument();
$doc->loadHTML($article_header);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {

В $imgs идет тег DOM img. Теперь я хочу изменить оригинальный тег img, добавив в него некоторый класс.

ТАК, если $article_header было таким:

"some text"...<img src = 'http://some_source'>...some text...

Теперь я хочу, чтобы это стало таким:

"some text"...<img class = 'someclass' src = 'http://some_source'>...some text...

UPDATE

Я повторяю. Начальная переменная $article_header. Поэтому все изменения должны быть внесены в него.

С моим кодом я просто ищу в тегах img $article_header, находя их, помещая их в некоторые переменные и меняя их, это нормально, но как я могу вернуть все изменения в $article_header ???

Ответы [ 2 ]

15 голосов
/ 14 августа 2011

В вашем цикле foreach звоните $img->setAttribute('class', 'someclass');. Это должно сделать свое дело. Подробнее на http://docs.php.net/manual/en/domelement.setattribute.php

Затем вам нужно сохранить измененный документ обратно, используя $article_header = $doc->saveXml();.

10 голосов
/ 14 августа 2011

Если вы знаете, что элемент не будет иметь уже установленный класс, вы можете просто использовать DOMElement::setAttribute(), например:

$img->setAttribute('class','someClass');

Если вы не уверены, что у элемента уже может быть установлен класс, то сначала нужно выполнить getAttribute (), а затем добавить свой класс в список классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...