10

How can I call a Drupal function or get the global variable in a PHP file which is located under the drupal installation folder. I doing it for the first time. Are there any files I need to include in my code in order to access the Drupal function or variables?

3
  • Possible duplicate: stackoverflow.com/questions/5014244/… Commented Jun 29, 2011 at 14:16
  • 2
    I strongly recmmend that you consider writing a module instead of adding arbitrary PHP files for things that should be part of the website. And for scripts, you can write drush scripts (drupal.org/project/drush). Commented Jun 29, 2011 at 16:21
  • @Berdir I am using it for testing purpose. Commented Jun 30, 2011 at 5:25

4 Answers 4

10

If the above explained example doesn't work try this:

$path = $_SERVER['DOCUMENT_ROOT'];
chdir($path."/drupal");
define('DRUPAL_ROOT', getcwd()); //the most important line
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
Sign up to request clarification or add additional context in comments.

2 Comments

this looks like a hybrid of both drupal 6 and drupal 7
How do we do for Drupal8?
7

Taken from the linked question in the comment above

You need to Bootstrap Drupal in the external PHP file:

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

Be sure to change the path to your Drupal installation, then add your code below the code posted above.

Comments

2
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

The above code works for me, when the script is in my Drupal root directory. This loads absolutely everything, not just Drupal core, including contributed module hooks.

Comments

0
define('DRUPAL_ROOT', getcwd());

require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
global $user;
print_r($user);

1 Comment

This question already has an accepted answer. If your answer is an improvement, you should add some detail explaining why.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.