PHP中的include和include_once问题

时间:2012-04-27 03:15:24

标签: php include

我目前正在开发一个PHP项目。我将项目文件复制到我的本地框。除了一件事,它运行良好。

这是文件夹层次结构:

root/index.php
root/event/admin/list.php 
root/event/admin/functions.php

在index.php中,有一行:

<?php include ("event/admin/list.php"); ?>

应该包含list.php

但是在list.php中,有一行:

<?php include_once "event/admin/functions.php";?>

由于list.php不在根目录中,event/admin/functions.php没有调用,我的本地index.php无法加载此部分。 但是生产工作正常。

有谁知道发生了什么?这是设置include / include_once的方法总是使用ROOT目录而不使用$ _SERVER [“DOCUMENT_ROOT”]之类的东西吗?非常感谢。

4 个答案:

答案 0 :(得分:2)

在我看来,使用$ _SERVER ['DOCUMENT_ROOT']是个好主意。你可以这样做:

include_once($_SERVER['DOCUMENT_ROOT'] . "/path/to/file.php");

但是,尝试使用以下代码替换list.php中的代码:

<?php include_once "../../event/admin/functions.php";?>

这是与相对路径有关的已知问题。因此,DOCUMENT_ROOT是优选的。或者,您可以编辑include_path。

答案 1 :(得分:1)

include path设置为对您的项目有用的任何内容。

答案 2 :(得分:0)

这是与相对路径相关的常见问题。您可以从绝对路径中包含文件,也可以修改include_path in php.ini以使用doc root,并指定相对于此的文件。

答案 3 :(得分:0)

比较两台计算机之间的include path配置。