假设我有一个包含一些文件夹和页面的文件夹:
在 PageB11 上,我有:
require_once 'FolderB2/PageB21.php';
在 PageB1 上调用 PageB11 时:
require_once 'FolderB1/PageB11.php';
工作正常。但现在的问题是,虽然 PageB11 也有一个调用页面本身的函数( PageB11 ),但错误显示:
Warning: require_once(FolderB2/PageB21.php): failed to open stream: No such file or directory in Path\FolderB\FolderB1\PageB11.php on line X
当我更改 PageB11 上的require_once行变为:require_once '../FolderB2/PageB21.php'
;时,它正常工作!
我想做的是,如何在各种级别的文件夹中访问所有内容?有可能这样做吗?感谢..
答案 0 :(得分:1)
如上所述,处理此类情况的最佳方法是通过其绝对路径引用每个文件。这是来自文件系统根目录的路径,与当前文件相对给出的相对路径不同。
在PHP中,你有一个神奇的常量__DIR__
,它给出了当前文件的绝对路径。用它来预先包含每个include / require,你再也不会看到这个问题了。
require_once __DIR__ . '/../FolderB2/PageB21.php';
您还可以使用realpath()
。
答案 1 :(得分:0)
您可以添加文件的绝对路径
require_once('/home/my_host_account/www/FolderB2/PageB21.php');
请确认这是否有效。
答案 2 :(得分:0)
您还可以在引用原始目录的每个目录中创建soft-links。但这是一种解决方法,只有在所有其他方法都失败时才应该使用。