[英]php: path with include issue. can't reach file from two pages
我正在尝试访问这样的文件:
index.php
php/page.php
xml/file.xml
index.php: <? include 'php/page.php'; ?>
<? include 'php/page.php'; ?>
page.php: <? $xml = simplexml_load_file("xml/file.xml"); ?>
<? $xml = simplexml_load_file("xml/file.xml"); ?>
如果我打开index.php
这很好。 但是,如果我打开page.php
,将显示错误。 “找不到文件php/xml/file.xml
”
我知道我可以使用../
但在page.php
可以正常工作,而在index.php
则可以正常工作
任何想法我该如何解决? (使其在两个页面上都能正常工作)
感谢名单
问候
我不知道<? include 'page.php'; ?>
<? include 'page.php'; ?>
<? include 'page.php'; ?>
应该在index.php
工作,因为该文件位于下面的文件夹中。
如果是这种情况,似乎include
函数可能会在找不到文件的情况下检查子目录。 假设是这种情况, page.php
将无法找到file.xml
因为它不在树中的下面,但实际上是同级文件。 该函数无法开始随机遍历您的文件结构,因为它可能会找到并包含一个您不想要的名称相同的文件。
编辑
更新的代码更有意义。 您的包括正在寻找当前文件夹内的文件夹。 <? $xml = simplexml_load_file("xml/file.xml"); ?>
<? $xml = simplexml_load_file("xml/file.xml"); ?>
在php
文件夹中寻找一个名为xml
的文件夹,因为它是从那里被调用的。 您需要的是<? $xml = simplexml_load_file("/xml/file.xml"); ?>
<? $xml = simplexml_load_file("/xml/file.xml"); ?>
<? $xml = simplexml_load_file("/xml/file.xml"); ?>
在根目录中查找名为xml
的文件夹,请注意/
。
解决该问题的最简单方法是使用包含xml的相对路径。 因此在page.php中粘贴:
$xml = simplexml_load_file(__DIR__.'/../xml/file.xml');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.