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.