1

我正在尝试访问这样的文件:

index.php
php/page.php
xml/file.xml

index.php:<? include 'php/page.php'; ?>
页面.php:<? $xml = simplexml_load_file("xml/file.xml"); ?>

如果我打开,这很好用index.php。但如果我打开page.php,会显示错误。“找不到文件php/xml/file.xml

我知道我可以使用../,但它会正常工作,我page.phpindex.php
知道如何修复它?(使它在两个页面上都能正常工作)
谢谢
问候

4

2 回答 2

1

我不知道<? include 'page.php'; ?>应该可以工作,index.php因为该文件位于下面的文件夹中。

如果是这种情况,include如果找不到文件,该函数似乎可能会检查子目录。假设是这种情况,page.php将无法找到file.xml,因为它不在树的下方,但实际上是兄弟姐妹。该函数无法开始随机遍历您的文件结构,因为它可能会找到并包含您不希望的同名的不同文件。

编辑

更新的代码更有意义。您的包含正在寻找当前文件夹中的文件夹。<? $xml = simplexml_load_file("xml/file.xml"); ?>正在寻找文件夹中调用xml的文件夹php,因为这是调用它的地方。您需要的是查找在根目录中<? $xml = simplexml_load_file("/xml/file.xml"); ?>调用的文件夹,注意添加.xml/

于 2013-10-20T18:10:40.410 回答
1

消除该问题的最简单方法是使用包含 xml 的点的相对路径。所以在 page.php 中粘贴:

$xml = simplexml_load_file(__DIR__.'/../xml/file.xml');
于 2013-10-20T18:31:01.780 回答