PHP - Пример DOM парсера

Здравствуйте,年轻的编程爱好者们!今天,我们将踏上一段激动人心的旅程,探索PHP和DOM解析的世界。作为你友好的人工智能计算机老师,我将引导你一步一步地完成这次冒险。所以,戴上你的虚拟安全帽,让我们一起跳进去吧!

PHP - DOM Parser Example

DOM解析是什么?

在我们跳入代码之前,让我们先了解一下DOM解析是什么。想象你正在读一本书。DOM(文档对象模型)就像那本书的结构 - 章节、段落、句子。DOM解析就像翻阅这些页面并理解所有内容的组织方式。在网页世界中,它帮助我们导航和操作HTML文档。

我们今天的任务

我们将编写一个PHP脚本,读取一个HTML文件,从中提取一些特定的信息,并显示这些信息。就像一个侦探,但我们解决的不是犯罪,而是网页的神秘!

示例

让我们从我们的HTML文件开始。我们将其称为example.html

<html>
<body>
<h1>Моя домашняя страница</h1>
<div class="menu">
<ul>
<li>HTML</li>
<li>PHP</li>
<li>JavaScript</li>
</ul>
</div>
</body>
</html>

现在,让我们创建我们的PHP脚本来解析这个HTML。我们将称其为dom_parser.php

<?php
// Загрузка HTML файла
$htmlContent = file_get_contents("example.html");

// Создание нового объекта DOMDocument
$dom = new DOMDocument();

// Загрузка HTML контента в DOMDocument
$dom->loadHTML($htmlContent);

// Создание нового объекта DOMXPath для запроса документа
$xpath = new DOMXPath($dom);

// Поиск всех элементов <li>
$liElements = $xpath->query("//li");

// Отображение содержимого каждого элемента <li>
foreach ($liElements as $li) {
echo $li->nodeValue . "<br>";
}
?>

让我们一步一步分解这个过程:

1. Загрузка HTML файла

$htmlContent = file_get_contents("example.html");

这行代码读取我们HTML文件的全部内容并将其存储在$htmlContent变量中。就像打开我们的书并一次性拍摄所有页面的快照!

2. Создание нового объекта DOMDocument

$dom = new DOMDocument();

在这里,我们创建一个新的DOMDocument对象。想象一下这是创建一个特殊的放大镜,帮助我们更仔细地检查我们的HTML结构。

3. Загрузка HTML в DOMDocument

$dom->loadHTML($htmlContent);

现在我们用我们的特殊放大镜(DOMDocument)来查看我们的HTML内容。这一步为解析HTML做准备。

4. Создание нового объекта DOMXPath

$xpath = new DOMXPath($dom);

XPath就像一个指南针,用于导航我们的HTML结构。这行代码创建一个XPath对象,我们将用它来找到HTML中的特定元素。

5. Поиск элементов

  • $liElements = $xpath->query("//li");

    这时候魔法发生了!我们使用XPath来找到HTML中的所有<li>元素。//li表达式意味着“在文档中的任何位置查找所有<li>元素”。

    6. Отображение результатов

    foreach ($liElements as $li) {
    echo $li->nodeValue . "<br>";
    }

    最后,我们遍历我们找到的每个<li>元素并显示其内容(nodeValue)。我们在每个项目后添加一个<br>标签,以便将它们放在单独的行上。

    Запуск скрипта

    Когда вы запустите этот PHP скрипт, он выведет:

    HTML
    PHP
    JavaScript

    Вот и все! Мы успешно извлекли элементы списка из нашего HTML файла.

    Использованные методы

    Вот таблица основных методов, которые мы использовали в нашем скрипте:

    Метод Описание
    file_get_contents() Читает весь файл в строку
    new DOMDocument() Создает новый объект DOMDocument
    loadHTML() Загружает HTML из строки
    new DOMXPath() Создает новый объект DOMXPath
    query() Оценивает данное XPath выражение
    nodeValue Получает значение узла

    Заключение

    И вот вы его получили, друзья! Мы только что сделали свои первые шаги в мир DOM парсинга с PHP. Помните, что практика makes perfect, так что не бойтесь экспериментировать с различными HTML структурами и XPath запросами.

    За годы преподавания я понял, что лучший способ учиться - это делать. Так что вот вам небольшое домашнее задание: Попробуйте изменить скрипт, чтобы извлечь разные элементы из HTML.也许尝试获取<h1>标签的内容,或者所有具有特定类的元素。

    Счастливого кодирования, и пусть с тобой будет DOM!

  • Credits: Image by storyset