PHP包含来自根目录的所有文件(如CMS)

时间:2011-06-05 01:37:38

标签: php root

我需要在我们的页面中创建带有自己的index.php文件的子文件夹。但是,当我在根目录中包含页眉和页脚文件时,该站点会中断,因为头文件正在查找当前目录中的所有CSS和JavaScript文件。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以在include中使用相对路径,并..上一个目录。

include('../functions.php');

这将包括父文件夹中的functions.php。如果它是2个文件夹深,则为../../functions.php

这是在其他文件夹中包含内容的最常见方式,实际上提供了相对但直接的路径。使用解析器include_path可以工作,但不是可移植的。

只是快速比较两种方法的执行计划:

使用include('../functions.php');

  • 检查父文件夹,打开functions.php

    使用include_path,我们只列出列表中的3个路径,include('functions.php');

  • 检查当前文件夹,文件不存在
  • 检查include_path中的第一个路径,文件不存在
  • 检查include_path中的第二个路径,文件不存在
  • 检查include_path中的第三条路径,打开functions.php

    然后你必须希望有人不在其中一个包含的路径中放置一个functions.php ...

  • 答案 1 :(得分:0)

    对于服务器端,将根添加到include_path设置(或者,如果您不打算在其他任何地方添加,请将include_path替换为root),然后您将能够从任何地方引用其中的文件。

    客户端,您使用<base>标记告诉浏览器URL从哪里开始(即:相对URL最终指向的位置)。如果你要链接CSS和JS而不是包含它们,你真的只需要这个,但这是更常见的场景。 (您通常包含PHP,并链接CSS / JS。)