According to the documentation for SIMPLE HTML DOM PARSER (under the tab “How to modify HTML Elements”), this code finds the first instance of <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>
What if I want to insert 'foo' into the last instance of <div class="hello">
, assuming that the HTML code has a lot of instances of <div class="hello">
.
What should replace the 0
?
Well, since
// Find all anchors, returns a array of element objects
$ret = $html->find('whatever');
returns an array
holding all the <whatever>
elements, you can fetch the last element with PHP's regular array functions, e.g. with end
$last = end($ret);
If SimpleHtmlDom fully implements CSS3 Selectors for querying, you can also modify your query to use
:last-of-type
to only find the last sibling in returned nodelist.
From the manual:
// Find lastest anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', -1);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With