使用纯PHP语言,为文章的h2 h3 h4自动添加目录索引
```php
<?php
// 文章内容
$article = '<h2>一级标题</h2>
<p>一级标题内容</p>
<h3>二级标题</h3>
<p>二级标题内容</p>
<h4>三级标题</h4>
<p>三级标题内容</p><br/>';
// 将文章里的所有H2 H3 H4 取出来,构建成数组
preg_match_all('/<(?P<tag>[^\s]+)(.*?)>(?P<title>[^>]+)<\/(?P=tag)>(.*?)/i', $article, $matches);
// 构建目录数据
$catalogs = array();
foreach($matches['tag'] as $key => $value) {
if ($value == 'h2') {
array_push($catalogs, array(
'level' => 1, // 目录层次:1-H2 2-H3 3-H4 'title' => $matches['title'][$key] // 目录名字 )); } else if ($value == 'h3') { array_push($catalogs, array( 'level' => 2, 'title' => $matches['title'][$key] )); } else if ($value == 'h4') { array_push($catalogs, array( 'level' => 3, 'title' => $matches['title'][$key] )); } } // 输出目录HTML代码 echo "<div class='catalog'>"; echo "<strong style='font-size:16px;'>文章目录:</strong><br/>"; foreach($catalogs as $key=>$val){ switch ($val['level']): case 1: echo "<a href='#{$val["title"]}'>{$val["title"]} </a><br/>"; break; case 2: echo " |-- <a href='#{$val["title"]}'>{$val["title"]} </a><br/>"; break; case 3: echo " |-- |-- <a href='#{$val["title"]}'>{$val["title"]} </a><br/>"; break; endswitch ; } echo "</div>" ? >```
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!