我正在尝试访问这样的文件:
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
的文件夹,请注意添加/
。