1. 使用PHP解析HTML

PHP本身并不直接支持解析HTML,但我们可以借助一些库来辅助完成这项任务。这里我们使用DOMDocument类,它可以帮助我们解析HTML文档。

1.1 引入DOMDocument类

首先,我们需要引入DOMDocument类。在PHP中,这个类是PHP的核心扩展,无需额外安装。

<?php
$html = <<<HTML
<!DOCTYPE html>
<html>
<head>
    <title>图片示例</title>
</head>
<body>
    <img src="image1.jpg" alt="图片1">
    <img src="image2.jpg" alt="图片2">
</body>
</html>
HTML;

$dom = new DOMDocument();
@$dom->loadHTML($html);
?>

1.2 检查HTML是否有效

在使用loadHTML方法之前,建议检查HTML文档是否有效。如果HTML无效,loadHTML方法将返回false

if (!$dom->loadHTML($html)) {
    echo "无效的HTML文档";
    exit;
}

2. 查找图片元素

$images = $dom->getElementsByTagName('img');

3. 遍历图片元素

foreach ($images as $image) {
    $src = $image->getAttribute('src');
    $alt = $image->getAttribute('alt');
    echo "图片地址:$src<br>";
    echo "图片描述:$alt<br>";
}

4. 处理图片元素

4.1 修改图片属性

$image->setAttribute('src', 'new_image.jpg');
$image->setAttribute('alt', '新图片描述');

4.2 删除图片

$image->parentNode->removeChild($image);

4.3 添加新图片

$newImage = $dom->createElement('img');
$newImage->setAttribute('src', 'new_image.jpg');
$newImage->setAttribute('alt', '新图片描述');
$image->parentNode->insertBefore($newImage, $image);

5. 保存修改后的HTML

最后,我们需要将修改后的HTML保存到文件或输出到浏览器。

header('Content-Type: text/html; charset=utf-8');
echo $dom->saveHTML();