PHP:包含问题的路径.无法从两个页面访问文件


php: path with include issue. can't reach file from two pages

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

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

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

如果我打开index.php,这工作正常,但是如果我打开page.php,将显示错误。"找不到文件php/xml/file.xml"

我知道我可以使用../但它在page.php而不是index.php
中工作正常知道我该如何解决它吗?(使其在两个页面上都能正常工作)
感谢
问候

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

$xml = simplexml_load_file(__DIR__.'/../xml/file.xml');
我不知道

<? include 'page.php'; ?>应该在index.php中工作,因为文件位于下面的文件夹中。

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

编辑

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