我正试图达到这样的文件:
index.php
php/page.php
xml/file.xml
的index.php:<? include 'php/page.php'; ?>
page.php:<? $xml = simplexml_load_file("xml/file.xml"); ?>
如果我打开index.php
,这可以正常工作。但如果我打开page.php
,则会显示错误。 “无法找到文件php/xml/file.xml
”
我知道我可以使用../
,但它会在page.php
而不是index.php
中正常工作
任何想法我怎么能解决它? (使两页都能正常工作)
感谢名单
的此致
答案 0 :(得分: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
的文件夹,注意/
的添加。
答案 1 :(得分:1)
消除该问题的最简单方法是使用包含xml的点的相对路径。所以在page.php中粘贴:
$xml = simplexml_load_file(__DIR__.'/../xml/file.xml');