6

Drupalモジュールの内部で、Drupalサイトがインストールされているベースパスを取得する必要があります。

たとえば、drupalサイトがwww.example.com/mysite/にインストールされている場合、「/ var / www/myseite」を取得したいと思います。

www.example.com/にインストールされている場合は、「/ var/www」が必要です。

これを取得するための適切なDrupalの方法は何ですか?PHPのサーバー変数は信頼できないと読んだので、避けたいと思います。

(Drupal6およびDrupal7)

4

5 に答える 5

11

Drupal 7 には、これに使用できるDRUPAL_ROOTという新しい定数があります。

于 2011-01-25T21:16:01.397 に答える
5

私が使用するファイル システムの完全なドキュメント ルートを取得するには、次のようにします。

$_SERVER['DOCUMENT_ROOT'] . base_path()

Linux サーバーでは、次のような結果が得られます。

/var/www/html/www.example.com/mysite/

「base_path()」のみを使用すると、次のようになります。

/mysite/

Drupal 6 と 7 でも同じです。

于 2010-10-18T15:04:34.320 に答える
2

スコット・レイネンの答えへの追加:

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 に自動的に追加します。

于 2010-10-18T08:41:00.393 に答える
1

base_path()は、D6 と D7 の両方でこれを行います。

于 2010-10-18T04:25:31.460 に答える