我一直在徘徊一段时间试图摆脱这个问题。
我有一个php软件,我想知道脚本的执行位置。
e.g。
我有/foo/bar/home.php。在这种情况下,我想知道/ foo / bar是我的根。但是,如果我有一个示例管理页面/foo/bar/admin/index.php我也希望在这种情况下有/ foo / bar。 或
/foo/bar/foo/index.php - > /富/酒吧/富 /foo/bar/foo/randomname/home.php - > /富/酒吧/富
我该如何实现?
感谢您的帮助
答案 0 :(得分:1)
您可以访问$_SERVER
超全局变量的属性。
echo $_SERVER['DOCUMENT_ROOT'];
以下内容如果位于“/foo/bar/foo/index.php”中,则会回显/foo/bar/foo/
。
答案 1 :(得分:1)
因为/foo/bar
听起来并不像我的文件系统路径,所以我认为这是URL路径的第一部分。
应用程序如何知道此前缀适用于所有内容?它必须安装在某处,如果不应用重写,则文件系统路径布局和URL路径布局在某种程度上匹配。这可能用于通过减去一些字符串来实际生成路径信息,但我怀疑它是否有用。
我选择在一个包含在任何地方的文件中定义一个常量“INSTALL_PATH”和/或“INSTALL_URL”,它知道它与基本URL或文件路径的相对位置,并进行简单的字符串操作:
define('INSTALL_PATH', basename(__DIR__); // go one level up