这个问题已经在这里有了答案:
使用php从h1标签获取所有值(4个答案)
2年前关闭。
样本内容:
<h2 id="h2-1">H2 Heading (1)</h2>
<p>Lorem ipsum dolor sit amet consectetur ...</p>
<h3 id="h3-1">H3 Heading</h3>
<h2 id="h2-2">H2 Heading (2)</h2>
我想要达到的目标:
<ul>
<li><a href='#h2-1'>H2 Heading (1)</a></
<li><a href='#h2-2'>H2 Heading (2)</a></li>
</ul>
我知道可以用正则表达式函数来完成, 但是我不知道如何完成该函数。到目前为止, 这是我所做的:
function table_of_contents() {
$content = get_post_field( 'post_content', $post->ID );
$tags = preg_match_all( '#<h2>(.*?)</h2>#', $content, $matches );
return $tags;
}
#1
你可以像这样使用正则表达式:
<?php
$content = '<h2 id="h2-1">H2 Heading (1)</h2>
<p>Lorem ipsum dolor sit amet consectetur ...</p>
<h3 id="h3-1">H3 Heading</h3>
<h2 id="h2-2">H2 Heading (2)</h2>';
preg_match_all( '@<h2.*?>(.*?)<\/h2>@', $content, $matches );
$tag = $matches[1];
var_dump($tag);
输出如下:
array(2) {
[0]=>
string(14) "H2 Heading (1)"
[1]=>
string(15) "H2 Heading (2)"
}
regex101上的详细信息:https://regex101.com/r/RNeVI2/1
评论前必须登录!
注册