Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Php Simple Html Dom Parser Laravel Package

kub-at/php-simple-html-dom-parser

A fast, lightweight PHP HTML DOM parser that lets you find and extract elements from HTML using jQuery-like selectors. Compatible with simple_html_dom, it makes scraping, parsing, and manipulating markup easy with minimal code.

Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy (buy = adopt OSS): This package replaces hand-rolled regex/explode() HTML munging with a jQuery-style API (str_get_html(), $html->find('div.item > a')). For any roadmap item that touches "read data out of a web page or HTML blob," this collapses days of brittle string-parsing work into hours—often the difference between a feature shipping this sprint or being deferred.
  • Feature feasibility and scoping: Because it's MIT-licensed and dependency-free (no Composer extension requirements beyond ext-dom/libxml), it's a low-cost spike tool. A PM can greenlight a 1–2 day investigation into "can we extract pricing/specs/listings from these sources?" without committing to a scraping platform or a headless-browser vendor contract.
  • Use-case triage: It maps cleanly to a known set of product surfaces: content ingestion and enrichment (pulling article bodies, metadata, OpenGraph tags), competitive/market price monitoring, legacy system integration where the only available endpoint is an HTML page, email/template HTML inspection and rewriting, and test fixtures/assertions against rendered markup.
  • Buy-vs-build on adjacent infrastructure: It clarifies the boundary. This is a parser, not a crawler—no HTTP client, no retries, no JS rendering, no rate limiting, no queue. That means a "scrape competitor sites" epic should be scoped as: parser (this) + HTTP layer (Guzzle/Laravel Http) + job orchestration (queues) + compliance review. Adopting this package doesn't accidentally make scraping a solved problem, which keeps estimates honest.
  • Roadmap sequencing: The "opportunity" signal (0.76) plus a modest 152 stars suggests an underserved but low-investment niche: it does one thing acceptably and nobody is racing to improve it. For a PM, that reads as "cheap to trial, cheap to exit"—appropriate for a discovery-phase bet, not for a platform bet you'd build a three-year roadmap on.
  • Make-vs-fork: With a last release in 2019 and a single-maintainer profile, the realistic long-term posture inside a Laravel product is vendor-and-forget or vendor-and-patch. Worth deciding up front, because "we'll just fork it" is a hidden maintenance line item that should appear in the capacity plan.

When to Consider This Package

Adopt when:

  • The workload is moderate and batch-oriented—hundreds to low thousands of documents per run, not millions. Simple HTML DOM is memory-hungry per document; it's fine in a queued job, painful inline in a request.
  • You want jQuery-like selectors and the team's PHP fluency is higher than its DOM/XPath fluency. Developer velocity is the real ROI here, not raw performance.
  • You're on PHP 7.3–8.x and specifically need the maintained-compatibility fork rather than the abandoned SourceForge original.
  • The HTML is reasonably well-formed, or you can tolerate its lenient recovery behavior. For hostile, real-world "tag soup," pair it with masterminds/html5 or accept occasional mis-parses.
  • You need zero-dependency, drop-in, MIT code—useful when legal/procurement friction around new vendors or GPL-ish licenses is a blocker.
  • The output is internal, non-critical, and idempotent—enrichment fields, admin-facing previews, monitoring dashboards—where a parse failure is a log line, not an incident.

Look elsewhere when:

  • Maintenance risk matters more than speed. No release since October 2019 means PHP 8.4+ deprecation noise, no security triage, and no upstream fixes. If this becomes load-bearing, budget for owning it.
  • You're already on Laravel and want first-class ergonomics: Symfony DomCrawler (via symfony/dom-crawler) or symfony/css-selector gives CSS selectors over DOMDocument, is actively maintained, is better documented, and is already in many dependency trees. Goutte/HttpBrowser adds the HTTP layer.
  • You need strict standards compliance, namespaces, or complex XPath—native DOMDocument + DOMXPath is more correct and dramatically more memory-efficient.
  • You need JS-rendered pages, authenticated flows, or anti-bot handling. This is not that, and pretending otherwise is how scraping epics blow their estimates.
  • Scale or performance is a stated requirement. Measure first; if the profile shows parsing dominates, this is the wrong tool.
  • Security posture is strict. Any HTML parser that resolves external entities or fetches remote URLs deserves a threat-model review; file_get_html() on user-supplied URLs is an SSRF vector. Prefer passing strings you fetched yourself, with the network layer you control.
  • License/provenance diligence is required. The repository metadata is listed as unknown here, so verify the actual upstream before shipping—MIT is claimed, but confirm.

How to Pitch It (Stakeholders)

To executives (30 seconds): We have several features that need to read information out of web pages—competitive pricing, content ingestion, partner pages that only expose HTML. Today each of those becomes a custom, fragile engineering project. This is a small, free, MIT-licensed PHP library that turns that work into a few lines of code and lets us validate those features in days instead of weeks, before we commit real budget. It carries no vendor contract and no lock-in; if a feature proves valuable, we'd upgrade the surrounding infrastructure, not the parser.

To engineering: It's the maintained PHP 7.3+ fork of Simple HTML DOM—str_get_html() plus find() with jQuery-ish selectors. Zero new runtime dependencies, installs via Composer, MIT, so vendoring or patching is always on the table. Be clear-eyed about the tradeoffs: last release was 2019, one maintainer, no security response team, higher memory per document than DOMDocument, and leniency that occasionally guesses wrong on malformed markup. So use it deliberately—behind an interface, in queued jobs, parsing strings we fetched ourselves rather than passing user-controlled URLs into file_get_html(), and with a migration path to symfony/dom-crawler if the feature graduates. It's a cheap, reversible bet: adopt it to answer "is this feature worth building," not to answer "what is our long-term scraping architecture."

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource