2017 © Pedro Peláez

library advanced_html_dom



  • Wednesday, May 16, 2018
  • by petrleocompel
  • Repository
  • 9 Watchers
  • 28 Stars
  • 165 Installations
  • PHP
  • 0 Dependents
  • 1 Suggesters
  • 21 Forks
  • 7 Open issues
  • 1 Versions
  • 18 % Grown


The goal of this project is to be a DOM-based drop-in replacement for PHP's simple html dom library., (*1)

How To Use - The same way as simple. If you use file/str_get_html then you don't need to change anything. If you are instantiating with new simple_html_dom() then you will need to change that to new AdvancedHtmlDom(), (*2)

What's Different - Mostly just formatting (spaces) in the html. This is added by DOM and there's no way around it. Some non-standard selectors have been dropped but many more standard ones have been added. For example: img[src!=foo] was removed because it's not a valid selector. Added are things like a + b and a ~ b or even a.foo:not(.bar), (*3)

What's Better - 10x-20x Performance increase - Reduced memory requirement - Support for many more css selectors, (*4)

Features * Supports full set of css pseudo selectors plus many jquery extras: :not, :has, :contains, :gt, :lt, :eq * Use with css or xpath: $doc->find('h3 a'), $doc->find('//h3//a') * Jquery-style functions replace, wrap, unwrap, before after * Nodeset math: $doc->find('a')->minus($doc->find('.skip_me')) * Lots of stuff that even BeautifulSoup and Nokogiri can't do: $doc->search('span:lt(7):not(.foo)') * Lots more features that haven't been documented yet., (*5)

If you love Advanced HTML Dom please vote for it here!, (*6)

How to install it

Add the following code to your composer.json, (*7)

    "require": {
        "hrmatching/advanced_html_dom": "dev-master"
    "autoload": {
       "classmap": ["vendor/hrmatching/advanced_html_dom/advanced_html_dom.php"]

The Versions

16/05 2018



  Sources   Download


The Requires

  • php >=5.4