PHP实现Bootstrap Icons图标HTML重构与分类优化解析

代码笔记6天前发布
26 0

PHP实现Bootstrap Icons图标HTML重构与分类优化解析

在Web开发中,我们常常需要将图标库中的源文件进行解析、分类并重新输出为可浏览的结构化HTML页面。本文将解析一段用PHP实现的Bootstrap字体图标大全页面转换脚本,它的核心目标是读取原始HTML片段(如图标列表),提取图标名称、SVG路径、分类和标签,并输出为标准HTML结构,适合展示和检索。

PHP实现Bootstrap Icons图标HTML重构与分类优化解析
<?php
// 读取原始文件
$content = file_get_contents('5.php');

// 添加新的样式和头部
$newHeader = '<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bootstrap Icons 图标库</title>
</head>
<body>
    <div class="card">
        <div class="card-body">
            <span class="badge">!</span>
            <span class="tips">按<code>Ctrl+F</code>搜索图标</span>
        </div>
        <div class="card-body">
            <div class="texts">
                Bootstrap Icons 是一个免费、高质量的开源图标库,包含超过1,800个图标。这些图标可以在任何项目中使用,完全支持SVG格式。
            </div>';

// 提取所有图标项
preg_match_all('/<li.*?<\/li>/s', $content, $matches);
$icons = $matches[0];

// 开始新的列表
$newContent = $newHeader . "\n<ul class=\"list\">\n";

// 处理每个图标
foreach ($icons as $icon) {
    // 提取图标名称
    preg_match('/text-center pt-1">(.*?)<\/div>/', $icon, $nameMatch);
    $iconName = $nameMatch[1];
    
    // 提取SVG路径
    preg_match('/xlink:href="(.*?)"/', $icon, $svgMatch);
    $svgPath = $svgMatch[1];
    
    // 提取分类和标签
    preg_match('/data-categories="(.*?)"/', $icon, $catMatch);
    $categories = $catMatch[1];
    preg_match('/data-tags="(.*?)"/', $icon, $tagMatch);
    $tags = $tagMatch[1];
    
    // 创建新的图标HTML
    $newIcon = "    <li class=\"col\" data-categories=\"$categories\" data-tags=\"$tags\">
        <div class=\"bg-light text-center\">
            <a class=\"text-dark text-decoration-none\" href=\"/icons/$iconName/\">
                <svg class=\"bi\" fill=\"currentColor\" height=\"1em\" width=\"1em\">
                    <use xlink:href=\"$svgPath\"></use>
                </svg>
            </a>
        </div>
        <div class=\"name text-center\">$iconName</div>
    </li>\n";
    
    $newContent .= $newIcon;
}

// 添加结束标签
$newContent .= "</ul>\n        </div>\n    </div>\n</body>\n</html>";

// 保存新文件
file_put_contents('5_converted.php', $newContent);

echo "转换完成!请检查 5_converted.php 文件。";
?> 

一、功能概述

本PHP脚本的主要功能是:

  • 读取原始HTML文件 5.php
  • 提取所有图标项(<li>标签)
  • 使用正则表达式提取图标名称、SVG路径、分类与标签
  • 重新构建带有Bootstrap样式的新HTML结构
  • 生成新页面并保存为 5_converted.php

二、核心逻辑解析


// 读取原始文件
$content = file_get_contents('5.php');

这段代码读取原始图标HTML内容。


// 正则匹配所有图标项
preg_match_all('/<li.*?<\/li>/s', $content, $matches);

提取所有图标的 <li> 标签项,采用非贪婪匹配方式。


// 依次提取图标名称、SVG路径、分类、标签
preg_match('/text-center pt-1">(.*?)<\/div>/', $icon, $nameMatch);
preg_match('/xlink:href="(.*?)"/', $icon, $svgMatch);
preg_match('/data-categories="(.*?)"/', $icon, $catMatch);
preg_match('/data-tags="(.*?)"/', $icon, $tagMatch);

每项图标数据中,均使用正则匹配方式提取对应信息,并赋值。


// 输出新结构HTML
$newIcon = "<li class='col' data-categories='...'>...</li>";

将提取的数据嵌入到新的HTML结构中,带有语义化class、data属性和SVG图标。

三、输出结构优化

输出文件使用了如下结构包装,具备清晰的卡片布局与响应式图标展示:


<div class="card">
  <div class="card-body">
    <ul class="list">
      <li class="col" data-categories="..." data-tags="...">
        <svg></svg>
        <div class="name">图标名称</div>
      </li>
    </ul>
  </div>
</div>

四、应用场景

  • 重构图标库页面以支持筛选与展示
  • 用于搭建图标预览平台
  • 可集成进CMS或后台系统中实现图标管理

五、总结与建议

本PHP脚本展现了如何高效处理结构化HTML内容并提取关键信息。得益于正则表达式和结构化输出,我们可以将原始图标HTML转化为更加美观、便于用户交互的页面格式,极大提升用户体验与开发效率。

© 原创声明:本文由 四六啦工具 于 6 天 前发表在 代码笔记 分类目录中,最后更新于2025年5月18日,转载请注明本文永久链接:https://www.46.la/php-bootstrap-icons-parser

相关文章

暂无评论

本文暂时没有评论,来添加一个吧(●'◡'●)