在Drupal模块内部,我需要获取安装Drupal站点的基本路径。
例如,如果drupal站点安装在: www.example.com/mysite/ 然后我想得到 '/无功/网络/ myseite'
如果安装在: www.example.com/ 然后我想要 '/无功/网络'
Drupal的正确方法是什么?我想避免PHP的服务器变量,因为我读到它们是不可靠的。
(Drupal 6和Drupal 7)
答案 0 :(得分:11)
在Drupal 7中,有一个名为DRUPAL_ROOT的新常量可供您使用。
答案 1 :(得分:5)
要获取我使用的文件系统的完整文档根目录:
$_SERVER['DOCUMENT_ROOT'] . base_path()
在Linux服务器上,你会得到类似的东西:
/var/www/html/www.example.com/mysite/
如果您只使用“base_path()”,则只能获得:
/mysite/
Drupal 6和7也是如此。
答案 2 :(得分:2)
除了Scott Reynen的回答:
在page.tpl.php模板中,它也可以在$base_path
变量中使用。
在许多情况下,您甚至不需要知道基本路径,因为Drupal API函数会自行添加它。例如,要打印链接,您可以这样做:
<?php print '<a href="' . base_path() . 'foo/bar">Foo Bar</a>'; ?>
但是“Drupal方式”是使用l()函数:
<?php print l('Foo Bar', 'foo/bar'); ?>
l()函数会自动将基本路径添加到href。
答案 3 :(得分:1)
base_path()在D6和D7都这样做。
答案 4 :(得分:0)
您可以使用DRUPAL_ROOT常量。