我目前正在开发一个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”]之类的东西吗?非常感谢。
答案 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配置。