【发布时间】:2013-07-24 21:28:45
【问题描述】:
在 PHP 中如何获取站点中任何位置的站点文件夹路径?
例如:/var/www/sitename
这是我目前得到的:
$r1 = $_SERVER['document_root'] // = /var/www
$r2 = __DIR__ // = /var/www/sitename/view/folder/subf
$r3 = str_replace($r1 . '/', '', $r2); // = sitename/views/folder/subf
$arr = explode('/', $r3); // = array (sitename, views, folder ...)
$sitepath = $r1 . '/' . $arr[0] // = /var/www/sitename
还有其他最简单的方法吗?
编辑:在不同的服务器中有许多不同名称的站点副本,可能是 site1 (/var/www/site1) 或 sitexx347(/var/www/sitexx347) 或 onemoresite.com (public_html/onemoresite),我想在网站的任何地方知道它,所以不要打电话
require_once '../../../../../../config.php';
或
require_once $_SERVER['DOCUMENT_ROOT'] . '/IveNoIdeaWhatTheNameIs/config.php';
我可以这样做:
require_once $sitepath . 'config.php';
我再说一遍,我不知道网站名称是什么。
编辑 2:我现在的做法很完美,我只是想知道一种最简单的方法。 实际上,这可以缩短为:
$r = explode('/', str_replace($_SERVER['DOCUMENT_ROOT'].'/', '', __DIR__));
$sitepath = $_SERVER['DOCUMENT_ROOT'] . '/' . $r[0];
【问题讨论】:
-
查看我对这个问题的回答:stackoverflow.com/questions/17814932/… 看看 site_config.php 代码是否有帮助。
-
定义“站点文件夹路径”是什么意思?
-
@Maximus2012 :实际上这是我想做的事情之一,无论您在站点的哪个位置,都可以调用 require_once($sitepath . '/site_config.php');
-
但是为了使配置文件正常工作,您不需要在某处定义 $sitepath 吗?就我而言,我在配置文件本身中定义了 $sitepath 的等效项。
-
哦,拜托,问题很清楚,这正是我要问的
标签: php