Как мне найти последнийв HTML-файл с PHP Простой HTML DOM Parser? - PullRequest
7 голосов
/ 25 января 2011

Согласно документации для SIMPLE HTML DOM PARSER (на вкладке «Как изменить элементы HTML») этот код находит первый экземпляр <div class="hello">:

$html = str_get_html('<div class="hello">Hello</div><div class="world">World</div>');

$html->find('div[class=hello]', 0)->innertext = 'foo';

echo $html; // Output: <div class="hello">foo</div><div class="world">World</div>

Что, если я хочу вставить 'foo' в последний экземпляр <div class="hello">, предполагая, что в HTML-коде много экземпляров <div class="hello">.

Что должно заменить 0?

Ответы [ 3 ]

8 голосов
/ 25 января 2011

Ну, так как

// Find all anchors, returns a array of element objects
$ret = $html->find('whatever');

возвращает array, содержащий все элементы <whatever>, вы можете получить последний элемент с помощью обычных функций массива PHP, например, с end

$last = end($ret);

Если SimpleHtmlDom полностью реализует CSS3-селекторы для запросов, вы также можете изменить свой запрос для использования

:last-of-type

только для того, чтобы найти последнего брата в возвращенном нодлисте.

3 голосов
/ 02 января 2014

Из руководства:

// Find lastest anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', -1); 
0 голосов
/ 25 января 2011

lastChild свойство возвращает последний дочерний объект элемента.

EDIT: не JQuery очевидно :) См. Ссылку на селектор W3C: http://www.w3.org/TR/css3-selectors/#last-child-pseudo

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