PHP中的相对、绝对和血腥量子路径!

PHP中的相对、绝对和血腥量子路径!,php,relative-path,absolute-path,Php,Relative Path,Absolute Path,我正在构建一个web应用程序(论坛),它将集成到各种网站中。这个想法是,存储所有文件的文件夹位置是可变的,这样一个webmin就可以把论坛放在任何他们喜欢的地方。像往常一样,我有一些包含PHP的文件 假设我有global.php和envars.php并希望它们包含在app_root.php中。前两个存储在相对于app\u root.php的/global/中。现在,当我使用/时,我得到一个文件未找到错误。如果我只使用global/(没有带前缀的斜杠),我会得到相同的错误 在这方面我真的需要帮助:

我正在构建一个web应用程序(论坛),它将集成到各种网站中。这个想法是,存储所有文件的文件夹位置是可变的,这样一个webmin就可以把论坛放在任何他们喜欢的地方。像往常一样,我有一些包含PHP的文件

假设我有
global.php
envars.php
并希望它们包含在
app_root.php
中。前两个存储在相对于
app\u root.php
/global/
中。现在,当我使用
/
时,我得到一个文件未找到错误。如果我只使用
global/
(没有带前缀的斜杠),我会得到相同的错误

在这方面我真的需要帮助:-(

路径需要与app_root.php相对,不能是绝对的-abs.path随安装而变化

谢谢你的阅读


James

通常通过创建一个具有应用程序绝对路径的常量来解决此问题

在您的app_root.php文件中类似的内容

define('ROOT_PATH', dirname(__FILE__));
然后,要包含其他文件,只需使用

include ROOT_PATH . '/dir/file.php';

这个问题通常通过创建一个具有应用程序绝对路径的常量来解决

在您的app_root.php文件中类似的内容

define('ROOT_PATH', dirname(__FILE__));
然后,要包含其他文件,只需使用

include ROOT_PATH . '/dir/file.php';

./表示当前文件夹,因此这并没有真正的帮助。您能更详细地了解一下您的目录结构吗?如果没有更多信息,我只能建议将所有内容都设置为绝对值,如果您愿意,可以将路径存储为常量,而不是硬的-coding@jon_darkstar-我决定按照迈克B的建议走这条路-谢谢,不问题。有一件事-取决于webroot的设置和框架(或缺乏)您可能可以在.htaccess、System.xml、Config.xml等格式中存储常量。在这里存储路径常量可能比在常规源代码中更合适。这是一个非常好的观点,尽管为了便于移植和安装,以及消除.htaccess冲突,在这种情况下,我认为最好使用
dirname(_文件__)
解决方案。尽管如此,还是要感谢您的提示!/表示当前文件夹,因此这并没有真正的帮助。您能更详细地了解一下您的目录结构吗?如果没有更多信息,我只能建议将所有内容都设为绝对值,如果您愿意,可以将路径存储为常量,而不是硬的-coding@jon_darkstar-我决定接受这个根据Mike B的建议发送-谢谢。没问题。有一件事-取决于webroot的设置和框架(或缺乏)您可能可以在.htaccess、System.xml、Config.xml等格式中存储常量。在这里存储路径常量可能比在常规源代码中更合适。这是一个非常好的观点,尽管为了便于移植和安装,以及消除.htaccess冲突,在这种情况下,我认为最好使用
dirname(\uuuuu FILE\uuuuuu)
solution。尽管如此,还是要感谢您提供的提示!谢谢。我想让它成为相对的,所以安装程序中少了一个字段。不过,键入文件路径并不难-P@Jam它不是“应用程序的路径”,它是实际文件的路径。相同的相对路径,不同的视图。您也可以使用
包括'dir/file.php';
。没有区别。它实际上不是solution@Col.弹片-好吧,它对我来说非常有用,所以我现在很高兴。如果我发现它停止工作,我会第一个告诉你…@Jam不用麻烦了。我知道它是真的dy。你能做的最好的事情是开始思考,而不是复制粘贴一个你甚至都不懂的代码。谢谢。我想让它成为相对的,所以在安装程序中少了一个字段。不过,键入文件路径并不难-P@Jam它不是“应用程序的路径”,它是实际文件的路径。相同的相对路径,不同的视图。您也可以使用
包括'dir/file.php';
。没有区别。它实际上不是solution@Col.弹片-好吧,它对我来说非常有用,所以我现在很高兴。如果我发现它停止工作,我会第一个告诉你…@Jam不用麻烦了。我知道它是真的你能做的最好的事情就是开始思考,而不是复制粘贴你甚至不懂的代码。