calling include from an included file
The include path is relative to the first file in the include chain.
A good way to ensure the correct include path is to always include from the document root.
This is done like this:
include $_SERVER['DOCUMENT_ROOT'] . '/folder1/folder2/includetwo.php';
The "relative include path" is not shifted to the included file... Which means that using relative paths generally ends badly.
A better solution, that I use almost all the time, is to always work with absolute paths -- and you can mix relatives and absolute paths using __DIR__
, to get the directory that contains the file where this is written.
For example, in include_one.php
, you'd use :
require_once __DIR__ . '/include_two.php';
To include the include_two.php
file that's in the same directory as include_one.php
.
And, in main_file.php
, you'd use :
require_once __DIR__ . '/../include_one.php';
To include the include_one.php
file that's one directory up.
With that, your includes will work, no matter from which file they are called.