繁体   English   中英

php:包含问题的路径。 无法从两页访问文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM