file_get_contents() 滥用

发布于 2024-10-17 06:40:50 字数 1841 浏览 1 评论 0原文

这我似乎无法弄清楚。简而言之,我有一个网页,该网页将根据 $_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);
}

This I cant seem to figure out. In a nutshell I have a webpage that will change depending on $_GET variables set. When building the webpage there are 2 menus to choose from. These menus are stored in html files.

Here is the line that is reading that file.

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

Here is the function that the line is running.

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

Here is what is in the menu file.

<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 />

and here is where my problem is... for some reason its returning

<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 />

file_get_contents() when used alone returns the correct value which leads me to believe the DOMXPath function is doing something to it. Im pretty stumped.

any ideas? thanks in advance

EDIT

adding construct method that creates DOMDoc

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

中性美 2024-10-24 06:40:50

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

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

Not sure what charset you sending in the header, but I've run into something similar before and that was the issue. Try using:

header('Content-Type: text/html; charset=UTF-8');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文