2012-05-16 83 views
0

我想在我的header.php文件運行這段代碼如何使用php訪問php頁面上的DOM元素?

<?php 
$doc = new DOMDocument(); 
$doc->load('wp-content/themes/foo/header.php'); 
$header_li_elements = $doc->getElementsByTagName('li'); 
foreach($header_li_elements as $value){ 
echo $value->nodeValue; 
} 
?> 

這可能嗎?

我希望能夠運行一個php函數來檢查我當前正在處理的頁面,然後更改特定nav元素的id屬性,以便動態更改nav元素的外觀以適應任何頁面我上線了。

目前我只是想獲得進入「禮」是我在頁面上的元素,然後附和他們,我可以從那裏工作。有什麼想法嗎?

對不起,如果它很混亂。有點難以描述我在想什麼。

回答

4

由於該頁面是動態的(例如在HTML是由PHP產生的),這將無法工作,因爲你要解析HTML將尚未存在。它不會在運行時創建。你必須找到另一種方法來做到這一點,例如檢查當前URL是什麼,並用它來確定導航欄的外觀。

+0

謝謝,關於這個過程的具體方法的任何想法? – T110

0

要做到這一點,你的PHP將不得不解析你的HTML,就像它是XML。不是不可能的,但是更適合單行jQuery的工作。

如果你堅持這樣做,服務器端無論出於何種原因,它會是更好的捕捉到列表中的項目,因爲它們可以產生,而不是等到他們返回一個巨大的字符串,然後嘗試把它們都變成標籤,這樣你就可以操縱它們,只是再次將它們變成一個巨大的字符串。

看起來像WordPress的,我敢肯定的WordPress有可用來幫助您實現這個API,但我們需要清楚地看到發生了什麼事在header.php中。