PHP包含来自不同文件夹的文件

时间:2018-07-18 13:48:27

标签: php include directory root

我有2个文件index.php和header.php,它们都位于不同的文件夹中。

root/en/index.php

root/includes/header.php

我尝试使用config.php文件(放置在根目录中)设置根文件夹:

DEFINE("ROOT_PATH", dirname( __FILE__ ) ."/" );

在index.php中,如果我尝试包含任何页面(header.php或confing.php),则路径仍然从index.php子文件夹(en)开始,而不是从根目录开始。在index.php中,我使用:

include( ROOT_PATH . "/config.php");

include( ROOT_PATH . "/includes/header.php");

结果是:

  

警告:使用未定义的常量ROOT_PATH-假定为“ ROOT_PATH”

     

警告:include(ROOT_PATH / config.php):无法打开流:root / eng / index.php中没有此类文件或目录。


因此,我尝试了没有confing.php的情况(因为我虽然将文件包含在子文件夹中将更改根文件夹),但仍然无法使用。.

我在使用XAMP的本地主机上。

3 个答案:

答案 0 :(得分:0)

您知道吗,您可以像这样使用include:

include '../../config.php'; 

答案 1 :(得分:0)

您的config.php为

DEFINE("ROOT_PATH", dirname( __FILE__ ) ."/" );

具有ROOT_PATH本身的定义。因此,每当需要ROOT_PATH时,都需要首先包含config.php。

如果config.php文件位于root / config.php中,则需要从root / en / index.php调用该文件,

include(dirname(__DIR__).'/config.php');
include( ROOT_PATH . "/includes/header.php");

然后代码将起作用。

编辑:

echo dirname(__DIR__).'/config.php'
exit;

在要调用的文件上运行此代码。.您知道要尝试包含的文件,并通过目录结构检查您是否在代码中获得相同的目录信息

答案 2 :(得分:0)

/** This must be done in the same file. 
  *  (Or in a file whose import does not depend on the 'ROOT_PATH' constant.)
  **/
define('ROOT_PATH', dirname( __FILE__ ) ."/" );

include( ROOT_PATH . "/config.php");

include( ROOT_PATH . "/includes/header.php");