php includes is there any way to include a file relative only to that document?

前端 未结 2 1146
青春惊慌失措
青春惊慌失措 2021-02-13 06:48

If I have an index.php file that includes inc/footer.php I would write:

include \'inc/footer.php\';

If I want to include another file inside fo

2条回答
  •  礼貌的吻别
    2021-02-13 06:49

    This may help: (from http://php.net/manual/en/function.include.php)

    Files for including are first looked for in each include_path entry relative to the current working directory, and then in the directory of current script. E.g. if your include_path is libraries, current working directory is /www/, you included include/a.php and there is include "b.php" in that file, b.php is first looked in /www/libraries/ and then in /www/include/. If filename begins with ./ or ../, it is looked for only in the current working directory or parent of the current working directory, respectively

    Your question states:

    If I want to include another file inside footer.php, I must do it relative to the index.php file (the one that is including it).

    This is true only if the filepath you are trying to include() starts with ./ or ../ . If you need to include a file above the current file using a relative path, you can (as you suggested) use:

    include( dirname(__FILE__) . '/../file.php')
    

    If you define an absolute path, you can also add this to the current include_path:

    set_include_path(get_include_path() . PATH_SEPARATOR . '/absolute/path');
    

    You can then do all your includes relative to '/absolute/path/'.

提交回复
热议问题