【问题标题】:Simple XML Load File with IF statement path error带有 IF 语句路径错误的简单 XML 加载文件
【发布时间】:2012-05-04 08:23:56
【问题描述】:

我的站点根目录中有一个名为 list.xml 的 XML 文件。我想在我网站的每个页面上通过simplexml_load_file() 加载它。

我在模板文件中尝试了以下代码:

if ($level == 1) {
    $xml = simplexml_load_file('list.xml');
} else {
    $xml = simplexml_load_file('../list.xml');
}

变量 $level = 1 在根级别的页面上设置。在其余的页面上,都是一层深度,$level 没有设置,相对路径 '../list.xml' 应该用于这些页面。

当我访问根级页面时,网站加载正确,但一级深度页面返回错误:

PHP 警告:simplexml_load_file():I/O 警告:未能加载外部实体“list.xml”

我已经确定相对路径是正确的。我尝试了上述代码的其他组合,但我不知道出了什么问题。它起作用的唯一方法是在每个网页中手动设置路径。但是那样的话,维护起来会很困难。

感谢您的帮助!!

【问题讨论】:

    标签: php simplexml


    【解决方案1】:

    您无需尝试根据输入文件自定义您的脚本,而是可以编写一行代码,无论您的脚本在网络树中的哪个位置都可以正常工作:

    $xml = simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/list.xml');
    

    【讨论】:

    • 非常好……乐于助人。如果此解决方案对您有用,如果您接受答案,将不胜感激。干杯!
    • 找出问题所在。我不小心把$level = 1留在了更深的页面中......呵呵
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    相关资源
    最近更新 更多