3

include在 Ubuntu 服务器上使用 php 定位文件时遇到问题。

网站结构

/var/www/
     home/index.php
     include/header.php

当我尝试include_once('/include/header.php')在文件home/index.php中插入以下内容时,它不起作用。

但是,如果我将其更改为include_once('../include/header.php'),它可以正常工作,但是要在我的网站上保持一致性,我不能允许这样做

解决此问题的最佳方法是什么?

4

3 回答 3

5

如果您的文档根目录是,/var/www/那么您可以使用:

include $_SERVER['DOCUMENT_ROOT'] . '/include/header.php';

通常,PHP 是DOCUMENT_ROOT正确的,因此您通常可以依赖它。

如果要包含相对于正在执行包含的脚本的文件,您可以执行以下操作:

include dirname(__FILE__) . '/../include/header.php';
于 2012-09-12T21:03:28.417 回答
2

前导斜杠表示绝对路径。大多数应用程序会APP_ROOT在周期的早期定义一个常量或类似的东西来解决这些问题。

define('APP_ROOT', dirname(__FILE__));

然后稍后您可以包含以下文件:

include(APP_ROOT . '/includes/header.php');
于 2012-09-12T21:02:59.687 回答
1

我会尝试以下

include_once($_SERVER['DOCUMENT_ROOT'].'/include/header.php');

于 2012-09-12T21:04:36.870 回答