PHP - 包含在Include中不起作用

时间:2015-11-16 10:54:50

标签: php

我有以下目录结构:

主/管理/超级/

主页中,我有一个名为config.php

的文件
<?php
//Get relative path - for PHP files
$documentRoot = $_SERVER['DOCUMENT_ROOT'].'/mwo2015/';
include($documentRoot.'library/constants.php');
echo $paypalID;
?>

echo $paypalID得到了回应;

在路径 home / admin / 中,我有一个名为access-control.php的文件

<?php
//Common files
include('../config.php');
?>

和echo $paypalID再次呼应。

在路径 home / admin / super / 中,我有一个名为output.php的文件

<?php
include('../access-control.php');
?>

没有输出,我在路径的error_log中收到以下错误

PHP Warning:  include() [<a href='function.include'>function.include</a>]: Failed opening '../config.php' for inclusion (include_path='.:/usr/lib64/php:/usr/share/pear')

2 个答案:

答案 0 :(得分:0)

试试这个..

&#34;相对包含路径&#34;未转移到包含的文件

该解决方案适用于绝对路径,您可以使用dirname(__FILE__)与亲属和绝对路径组合,并获得包含该文件的目录。

在包含文件中,您可以使用以下

require_once dirname(__FILE__) . '/yourfile.php';
require_once dirname(__DIR__) . '/yourfile.php';

include dirname(__FILE__) . "/yourfile.php";
include dirname(__DIR__) . "/yourfile.php";

答案 1 :(得分:0)

你遇到的问题是:

相对路径使用入口点。所以,如果你开始并转到home / admin / super / output.php,你就从那里开始。

所以home / admin / super。

include('../access-control.php'); 

转到home / admin

此文件中的include包括home / admin但它应该转到home所以要解决这个问题你可以这样做:

../../config.php

这就是为什么围绕一个入口点构建应用程序或者在整个应用程序中使用全局根和webroot的原因。