voku/simple_html_dom

Simple HTML DOM package.

Maintainers

👁 voku

Package info

github.com/voku/simple_html_dom

pkg:composer/voku/simple_html_dom

Statistics

Installs: 8 905 272

Dependents: 66

Suggesters: 0

Stars: 903

Open Issues: 1

5.0.0 2026-04-21 08:58 UTC

Requires

  • php: >=7.1.0
  • ext-dom: *
  • ext-libxml: *
  • ext-simplexml: *
  • symfony/css-selector: ~3.0 || ~4.0 || ~5.0 || ~6.0 || ~7.0 || ~8.0

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

MIT 091de9ee6daf73a7ee3a062fb53e3687bc54ef70

domphp domHTML Parser

This package is auto-updated.

Last update: 2026-06-15 10:55:46 UTC


README

👁 Build Status
👁 Coverage Status
👁 Codacy Badge
👁 Latest Stable Version
👁 Total Downloads
👁 License
👁 Donate to this project using Paypal
👁 Donate to this project using Patreon

📜 Simple Html Dom Parser for PHP

A HTML DOM parser written in PHP - let you manipulate HTML in a very easy way! This is a fork of PHP Simple HTML DOM Parser project but instead of string manipulation we use DOMDocument and modern php classes like "Symfony CssSelector".

  • PHP 7.1+ runtime support, tested on PHP 7.1 - 8.4
  • PHP-FIG Standard
  • Composer & PSR-4 support
  • PHPUnit testing via GitHub Actions
  • PHPStan-clean source tree on the current release branch
  • PHP-Quality testing via SensioLabsInsight
  • UTF-8 Support (more support via "voku/portable-utf8")
  • Invalid HTML Support (partly ...)
  • Find tags on an HTML page with selectors just like jQuery
  • Extract contents from HTML in a single line

Install via "composer require"

composer require voku/simple_html_dom
composer require voku/portable-utf8 # if you need e.g. UTF-8 fixed output

Upgrade notes for v5.0.0

  • PHP 7.0 is no longer supported; the package now requires PHP 7.1 or newer.
  • Nested find*() calls now return live nodes scoped to the original DOM, so mutating nested results updates the source document.
  • See the CHANGELOG for the full release notes.

Quick Start

use voku\helper\HtmlDomParser;

require_once 'composer/autoload.php';

...
$dom = HtmlDomParser::str_get_html($str);
// or 
$dom = HtmlDomParser::file_get_html($file);

$element = $dom->findOne('#css-selector'); // "$element" === instance of "SimpleHtmlDomInterface"

$elements = $dom->findMulti('.css-selector'); // "$elements" === instance of SimpleHtmlDomNodeInterface<int, SimpleHtmlDomInterface>

$elementOrFalse = $dom->findOneOrFalse('#css-selector'); // "$elementOrFalse" === instance of "SimpleHtmlDomInterface" or false

$elementsOrFalse = $dom->findMultiOrFalse('.css-selector'); // "$elementsOrFalse" === instance of SimpleHtmlDomNodeInterface<int, SimpleHtmlDomInterface> or false
...

Examples

github.com/voku/simple_html_dom/tree/master/example

API

github.com/voku/simple_html_dom/tree/master/README_API.md

Support

For support and donations please visit Github | Issues | PayPal | Patreon.

For status updates and release announcements please visit Releases | Twitter | Patreon.

For professional support please contact me.

Thanks

  • Thanks to GitHub (Microsoft) for hosting the code and a good infrastructure including Issues-Managment, etc.
  • Thanks to IntelliJ as they make the best IDEs for PHP and they gave me an open source license for PhpStorm!
  • Thanks to Travis CI for being the most awesome, easiest continous integration tool out there!
  • Thanks to StyleCI for the simple but powerfull code style check.
  • Thanks to PHPStan && Psalm for relly great Static analysis tools and for discover bugs in the code!

License

👁 FOSSA Status