承接 f4n70m/html-dom-parser 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

f4n70m/html-dom-parser

最新稳定版本:v0.1.2

Composer 安装命令:

composer require f4n70m/html-dom-parser

包简介

Библиотека для парсинга HTML и работы с DOM

README 文档

README

Latest Version on Packagist PHP Version License

HtmlDomParser — это PHP-библиотека для продвинутого парсинга HTML, которая преобразует исходный код в удобное объектное дерево с богатой семантической информацией. Это не просто очередной парсер, а полноценный фреймворк для построения семантически-обогащённого DOM-дерева.

✨ Особенности

  • 🧠 Контекстная обработка узлов – каждый узел обрабатывается с учётом его роли в документе (блочный, строчный, фразовый и т.д.) с использованием временных объектов контекста.
  • 🔗 Схлопывание строчного контента – объединение последовательности строчных элементов (текст, выделения, ссылки) в один элемент с единым текстом и коллекцией фрагментов форматирования.
  • 🧩 Расширяемость через события и модули – подписывайтесь на ключевые этапы парсинга (PRE_NODE, POST_NODE, PRE_INLINE_COLLAPSE, POST_INLINE_COLLAPSE) и модифицируйте результат.
  • ⚠️ Продвинутая обработка ошибок – классификация ошибок по уровням (notice, warning, error), узлы-ошибки в дереве, настройка поведения (исключения / сбор).
  • 📊 Чистая объектная модель – удобные интерфейсы для навигации, фильтрации и трансформации дерева (ElementInterface, RichTextFragmentInterface, ElementListInterface и др.).

📦 Установка

composer require f4n70m/html-dom-parser

🚀 Быстрый старт

require_once 'vendor/autoload.php';

use HtmlDomParser\Parser;

$html = '<div>Привет, <a href="https://example.com">мир</a>!</div>';
$parser = new Parser($html);
$document = $parser->parse();

$element = $document->getChildren()->get(0);
echo $element->getLabel(); // "Привет, мир!"

// Информация о форматировании сохранена во фрагментах
foreach ($element->getFragments() as $fragment) {
    echo $fragment->getType() . ': ' . $fragment->getStart() . '-' . $fragment->getEnd();
}
// a: 7-10

📚 Документация

1. Общая информация

2. Ядро системы

3. События и модули

  • Событийная модель – подписка на события, жизненный цикл событий, примеры с использованием EventConstant.
  • Система модулей – создание модулей, обнаружение через Composer, зависимости, конфигурация.

4. Информация

🧩 Примеры использования

Больше примеров можно найти в документации, особенно в разделах «Быстрый старт», «Модель данных» и «Утилиты». Вот ещё один фрагмент, демонстрирующий фильтрацию элементов:

$links = $div->getChildren()->filter(fn($el) => $el->getName() === 'a');
foreach ($links as $link) {
    echo $link->getData() . ': ' . $link->getLabel() . "\n";
}

Работа с фрагментами форматирования

$html = '<p>Это <b>жирный</b> и <i>курсивный</i> текст</p>';
$parser = new Parser($html);
$document = $parser->parse();

$p = $document->getChildren()->get(0);
echo $p->getLabel(); // "Это жирный и курсивный текст"

foreach ($p->getFragments() as $fragment) {
    echo $fragment->getType() . ': ' . $fragment->getStart() . '-' . $fragment->getEnd();
}
// b: 4-10
// i: 13-22

🛠 Требования

  • PHP 7.4+
  • Расширение ext-dom
  • Composer

📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE.

🤝 Сообщество

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固