2010-08-30 127 views
0

我有一個包含多個H1標題的頁面,後面跟着文本等。 實施例:PHP獲取多個文字<h1>...</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。

最終目的是要算結束</h1>和下一次起動<h1>之間的文本strlen的,如果它超過200個字符更高隱藏它<span>display:none內部,以便用戶可以按「全部顯示」取消隱藏。

我該如何得到它?

+2

聽起來像客戶端JavaScript將幫助你在這裏。 – 2010-08-30 13:19:47

+2

[你應該刪除正則表達式並使用解析器代替](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – Amarghosh 2010-08-30 13:21:11

+1

給他們一個ID和使用getelementbyid() – Grumpy 2010-08-30 13:27:15

回答

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的,具有基本相同的過程(減去緩衝捕捉東西)。

+0

我想OP想分析**後面的文本**來自H1標籤......'文本在結尾和下一個開始

' – 2010-08-30 16:02:14

+0

啊是的... D'哦...星期一......在這種情況下,'$ h1-> nextSibling()'可能會在'foreach() – 2010-08-30 16:40:30