PHP在多个<h1> ... </h1>标记之间获取文本

时间:2010-08-30 13:15:36

标签: php regex

我有一个包含多个H1标题的页面,后跟文本,依此类推。 例如:

<h1>Title 1</h1>Some text here
<h1>Title 2</h1>Some more text here
<h1>Title 3</h1>Even more text here

我想要做的是创建一个元素数组,使用上面的分隔符<h1>ANY TEXT</h1>来爆炸HTML,我在$ output变量中。

最终目的是在结尾</h1>和下一个<h1>之间计算文本的strlen,如果它高于200个字符,则将其隐藏在<span> display:none内{{1}} 1}}所以用户可以按“全部显示”取消隐藏。

我怎么能得到它?

1 个答案:

答案 0 :(得分:1)

在将页面发送到客户端之前,您可以使用SimplePHPDom执行此操作:

ob_start();
// build page here
$html = ob_get_clean();

$dom = str_get_html($html);

$headings = $dom->find('h1');

foreach($headings as $h1) {
   // process node to add CSS to hide node and change text to 'show more'
}

这也可以通过jQuery / MooTools在客户端完成,基本上是相同的过程(减去缓冲捕获的东西)。