网站目录导航能增加用户体验,点击上面的目录文字可以快速跳转到相关内容,适合长文章或者有特殊需求的文章使用。
通过正则表达式,自动文章内容提取带有H2标签的文字为目录索引
|
|
|
01 |
$str = '<h3 class="archt"> |
|
02 |
<strong>我是里面的内容</strong></h3><h3 class="archt2">我是第2个内容</h3><strong>我没有h3包在里面</strong>'; |
|
03 |
preg_match_all('/<h3.*?>.*?(<[^>]+>)?([^<]+)(<\/[^>]+>)?<\/h3>/s', $str, $arr); |
|
04 |
print_r($arr); |
|
05 |
Array |
|
06 |
( |
|
07 |
[0] => Array |
|
08 |
( |
|
09 |
[0] => <h3 class="archt"> |
|
10 |
<strong>我是里面的内容</strong></h3> |
|
11 |
[1] => <h3 class="archt2">我是第2个内容</h3> |
|
12 |
) |
|
13 |
[1] => Array |
|
14 |
( |
|
15 |
[0] => <strong> |
|
16 |
[1] => |
|
17 |
) |
|
18 |
[2] => Array |
|
19 |
( |
|
20 |
[0] => 我是里面的内容 |
|
21 |
[1] => 我是第2个内容 |
|
22 |
) |
|
23 |
[3] => Array |
|
24 |
( |
|
25 |
[0] => </strong> |
|
26 |
[1] => |
|
27 |
) |
|
28 |
) |
|
29 |
function article_index($content) |
|
30 |
{ |
|
31 |
$matches = array(); |
|
32 |
$ul_li = ''; |
|
33 |
$r = '/<h3.*?>.*?(<[^>]+>)?([^<]+)(<\/[^>]+>)?<\/h3>/s'; |
|
34 |
if(preg_match_all($r, $content, $matches)) |
|
35 |
{ |
|
36 |
foreach($matches[2] as $num => $title) |
|
37 |
{ |
|
38 |
$ul_li .= '<em>'.$title." </em>"; |
|
39 |
} |
|
40 |
} |
|
41 |
return $ul_li; |
|
42 |
} |