我遇到了在PHP中包含一个包含文件的问题。
项目
这是我的项目结构(对不起,我无法发布图片)。 我尝试使用“ index.php ”来包含“ a.php ”而“ a.php ”正在使用“ b .XML “
这就是我在XAMPP上所做的,它完美无缺:
我在 index.php 中写道:包含'functions / a.php'; a.php 中的我写道: $ xml-> load('xml / b.xml');
但是,如果我将这些复制到我的Uni的apache服务器,则无法打开此b.xml。 这不是许可,因为当我改为绝对路径时,它有效......
提前谢谢你们: - )
答案 0 :(得分:1)
在a.php中,如果使用include,则应引用../xml/b.xml 事情是,它取决于定义$ xml-> load()的时间。如果它是您自己的代码,则将路径相对于定义。否则“../xml/b.xml”应该有用。
你可以随时使用$ _SERVER ['DOCUMENT_ROOT'],但我自己喜欢将目录定义为常量(使用绝对路径)并在项目周围使用它们。
define('DIR_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/');
define('DIR_FUNCTIONS', DIR_ROOT . 'functions/');
define('DIR_XML', DIR_ROOT . 'xml/');
答案 1 :(得分:0)
尝试使用set_include_path()
设置应用程序根目录的包含路径;那么你应该能够包含相对于这条路径的文件。
答案 2 :(得分:0)
使用绝对路径始终更好,即使您必须构建它(例如$XML_PATH = $PATH_TO_BASE . 'xml/b.xml';
)
如果您不能这样做,则应将xml的父级添加到路径中。