PHP include relative path

PHP include relative path

You could always include it using __DIR__:

include(dirname(__DIR__)./config.php);

__DIR__ is a magical constant and returns the directory of the current file without the trailing slash. Its actually an absolute path, you just have to concatenate the file name to __DIR__. In this case, as we need to ascend a directory we use PHPs dirname which ascends the file tree, and from here we can access config.php.

You could set the root path in this method too:

define(ROOT_PATH, dirname(__DIR__) . /);

in test.php would set your root to be at the /root/ level.

include(ROOT_PATH.config.php);

Should then work to include the config file from where you want.

While I appreciate you believe absolute paths is not an option, it is a better option than relative paths and updating the PHP include path.

Use absolute paths with an constant you can set based on environment.

if (is_production()) {
    define(ROOT_PATH, /some/production/path);
}
else {
    define(ROOT_PATH, /root);
}

include ROOT_PATH . /connect.php;

As commented, ROOT_PATH could also be derived from the current path, $_SERVER[DOCUMENT_ROOT], etc.

PHP include relative path

function relativepath($to){
    $a=explode(/,$_SERVER[PHP_SELF] );
    $index= array_search($to,$a);
    $str=; 
    for ($i = 0; $i < count($a)-$index-2; $i++) {
        $str.= ../;
    }
    return $str;
    }

Here is the best solution i made about that, you just need to specify at which level you want to stop, but the problem is that you have to use this folder name one time.

Leave a Reply

Your email address will not be published.