file_get_contents()滥用

时间:2011-02-15 15:37:23

标签: php html templates

我似乎无法弄明白。简而言之,我有一个网页,它将根据$ _GET变量集而改变。在构建网页时,有2个菜单可供选择。这些菜单存储在html文件中。

这是读取该文件的行。

$template->set('menu',file_get_contents('../gamefiles/site_menu.html'));

以下是该行正在运行的功能。

function set($div,$data)
{
    $result = $this->xpath->query("//div[@id = '".$div."']");
    $node = $result->item(0);
    $node->nodeValue = $data;
    $this->dom->saveHTML();
}

以下是菜单文件中的内容。

<a href=''><div>Home</div></a><br />
<a href=''><div>Documentation</div></a><br />
<a href=''><div>Support</div></a><br />
<a href=''><div>Affiliates</div></a><br />
<a href=''><div>Sign up!</div></a><br />

这里是我的问题所在......由于某种原因它返回

&lt;a href=''&gt;&lt;div&gt;Home&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=''&gt;&lt;div&gt;Documentation&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=''&gt;&lt;div&gt;Support&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=''&gt;&lt;div&gt;Affiliates&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=''&gt;&lt;div&gt;Sign up!&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;

file_get_contents()单独使用时返回正确的值,这使我相信DOMXPath函数正在对它做一些事情。我很难过。

任何想法?提前谢谢

修改

添加创建DOMDoc的构造方法

function __CONSTRUCT($template)
{
    $this->dom = new DomDocument();
    $this->dom->loadHTML(file_get_contents($this->template_dir.$template));
    $this->xpath = new DomXPath($this->dom);
}

1 个答案:

答案 0 :(得分:0)

不确定你在标题中发送了什么字符集,但我之前遇到过类似的问题,这就是问题所在。尝试使用:

header('Content-Type: text/html; charset=UTF-8');