如何使用php访问php页面上的DOM元素?

时间:2012-05-16 01:05:54

标签: php dom

我想在header.php文件中运行此代码

<?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元素的外观我在。

目前我只是试图访问我所在页面上的'li'元素然后回显它们,我可以从那里开始工作。有什么想法吗?

很抱歉,这令人困惑。我很难描述我在想什么。

2 个答案:

答案 0 :(得分:4)

由于该页面是动态的(例如,HTML由PHP生成),因此无法使用您要解析的HTML。它不会在运行时创建。您必须找到另一种方法来执行此操作,例如检查当前URL是什么,并使用它来确定导航栏的外观。

答案 1 :(得分:0)

要做到这一点,你的php必须解析你的HTML,就像它是XML一样。并非不可能,但更适合单行jQuery的工作。

如果你出于某种原因坚持要做这个服务器端,那么在列表项目生成时要抓住它们要好得多,而不是等到它们作为一个返回巨大的弦然后试图将它们全部变回标签,这样你就可以操纵它们,只能将它们重新变成一个巨大的弦。

看起来像Wordpress,我非常确定Wordpress有API可以帮助您实现这一目标,但我们需要确切了解该header.php中发生了什么。