0

我一直在徘徊一段时间试图摆脱这个问题。

我有一个 php 软件,我想知道脚本在哪里执行。

例如

我有 /foo/bar/home.php 。在这种情况下,我想知道 /foo/bar 是我的根。但是,如果我有一个示例管理页面 /foo/bar/admin/index.php 在这种情况下我也希望有 /foo/bar 。或者

/foo/bar/foo/index.php -> /foo/bar/foo /foo/bar/foo/randomname/home.php -> /foo/bar/foo

我怎样才能做到这一点?

感谢帮助

4

2 回答 2

1

您可以访问$_SERVER超全局变量的属性。

echo $_SERVER['DOCUMENT_ROOT'];

以下,如果位于“/foo/bar/foo/index.php”,将回显/foo/bar/foo/

于 2012-10-08T18:11:49.517 回答
1

因为/foo/bar对我来说听起来不像是文件系统路径,所以我假设这是 URL 路径的第一部分。

应用程序如何知道此前缀应用于所有内容?它必须安装在某个地方,如果没有应用重写,文件系统路径布局和 url 路径布局在某种程度上匹配。这可能用于通过减去一些字符串来实际生成路径信息,但我怀疑它的用处。

我会选择在一个包含在任何地方的文件中定义一个常量“INSTALL_PATH”和/或“INSTALL_URL”,它知道它与基本 url 或文件路径的相对位置,并执行一个简单的字符串操作:

define('INSTALL_PATH', basename(__DIR__); // go one level up

于 2012-10-08T19:16:17.240 回答