qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

使用纯PHP语言,为文章的h2 h3 h4自动添加目录索引

时间2023-03-26 18:31:58 提问来自 湖北省武汉市 的网友 分类创作 浏览287
```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 "&nbsp;&nbsp;&nbsp;|-- <a href='#{$val["title"]}'>{$val["title"]} </a><br/>"; break; case 3: echo "&nbsp;&nbsp;&nbsp;|-- |-- <a href='#{$val["title"]}'>{$val["title"]} </a><br/>"; break; endswitch ; } echo "</div>" ? >```

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 焦虑怎么办? 下一篇 “ 电力系统工程师”的生涯人物访谈报告