2011-02-16 61 views
8

當我創建一個單獨的PHP文件一個新的腳本來爲Drupal運行,我需要添加以下行之上,以訪問所有的Drupal的API:Drupal:如何使用獨立的php腳本訪問Drupal的API?

require_once「./includes/bootstrap.inc」; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

這是正確的嗎?

+0

自己測試它很容易。當你這樣做會發生什麼? – 2011-02-16 08:45:04

+0

@Mark Trapp你知道,有時候你會加載超過必要的東西,即使它工作 – aneuryzm 2011-02-16 08:50:25

+0

看看update.php。我認爲它運行時沒有完整的引導程序。你可能會在那裏得到一些提示。 – Rimian 2011-02-16 10:52:58

回答

12

是的,我用這個:

/** bootstrap drupal **/ 
chdir("/path/to/drupal/site/htdocs"); 
require_once './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

然後只需添加你需要低於任何特定Drupal的代碼。

0

是的,這是進入drupal api的一種方法。
有時需要chdir("dir to drupal dir");,如果您從其他目錄調用php腳本。

4

這種方法仍然有效使用Drupal 7,但不是在CHDIR位,你可能需要添加以下行之前的要求和引導電話:

define('DRUPAL_ROOT','/path/to/drupal'); 
1

這應該雙方的Drupal 6和Drupal 7工作:

define('DRUPAL_ROOT', 'path/to/drupal'); 
chdir(DRUPAL_ROOT); 
require './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

放置包含此代碼的腳本的位置並不重要。只要確保用您的Drupal系統的實際安裝路徑替換path/to/drupal即可。