php - 头文件 - 相对路径问题

时间:2011-04-27 08:38:54

标签: php relative-path absolute-path header-files

我在php中有一个Web应用程序。我有一个header.php文件,其中我有开放的html标记,元数据,css,js文件包含。

我在这个应用程序中有多个文件夹。我已经给header.php中的css,js文件提供了相对路径。我面临的问题是,当我将这个header.php文件包含在其他文件./test-folder/my-file.php中时,相对路径会中断。

所以为了解决这个问题,我已经给出了绝对必要的路径。但是每次上传到服务器时我都必须更改这些路径。这可以用其他方式完成吗?

提前致谢

4 个答案:

答案 0 :(得分:11)

不要为路径使用静态值,而是为文档根定义常量并使用该常量

define('ROOT_PATH',$_SERVER['DOCUMENT_ROOT']);

包含文件时,您可以使用此常量。

include ROOT_PATH.'/some_dir/file.php';

答案 1 :(得分:2)

您的应用程序中存在糟糕的架构。尝试搜索有关MVC的信息 这个答案可能有用:https://stackoverflow.com/questions/5721353/what-is-good-neat-architecture-in-programming/5793753#5793753
所以:

答案 2 :(得分:1)

相对路径相对于当前工作目录(cwd)。如果您只是包含另一个cwd 更改的文件 如果你想拥有(某种程度上)相对于当前脚本文件路径的路径,你可以使用,例如。

require dirname(__FILE__).'/some_dir/file.php';

或从php 5.3开始

require __DIR__.'/some_dir/file.php';

另见:http://docs.php.net/language.constants.predefined

答案 3 :(得分:0)

如果我理解你的问题,你只想知道应用程序的根文件夹,而无需对其进行硬编码。

更简单的方法是在Shakti回答时定义一个常量。

但是,您实际上可以在根文件夹中拥有一个具有唯一名称的文件,例如“foobar”,然后从当前目录向上走,直到找到foobar。