Php将文件包含在包含其他文件的不同文件夹中

时间:2015-06-28 03:49:36

标签: php mysql

我是PHP的新手,我一直试图让文件(index.php)包含另一个文件(connect.php),其中包含另一个文件(config.php),但他们位于不同的文件夹中。

这是我的目录结构:

 > index.php (in the [root]...)
 > connect.php ([root]/admin/)
 > config.php ([root]/admin/)

这是我到目前为止所做的:

的index.php

include './admin/connect.php'

connect.php

$directory = getcwd();
chdir(__DIR__);
include "config.php";
chdir($directory);

这实际上有效但不知何故我不喜欢更改工作目录的想法。

有没有更好的方法来实现我的目标?

2 个答案:

答案 0 :(得分:1)

您可以将以下行放在index.php

的顶部

<强>的index.php

<?php

// Define native directory seperator. 
define('DS', DIRECTORY_SEPERATOR);

// Define absolute project root.
define('ROOT', getcwd().DS);

// Define absolute admin folder 
define('ADMIN_ROOT', ROOT.'admin'.DS);

include ADMIN_ROOT.'connect.php';

<强> connect.php

<?php

include ADMIN_ROOT.'config.php';

答案 1 :(得分:0)

使用include();时,内部的字符串会根据某些输入导致不同的位置。

+ /var/www/
- index.php
  + /var/www/admin/
  - connect.php
  - config.php

您可以通过提供包含文件名的字符串来引用同一文件夹中的内容。

// Include same-folder script
include('config.php');
// Include same-folder subfolder
include('admin/config.php');

您还可以使用正斜杠/引用文件绝对位置,从而启动字符串,这将转到根目录。

include('/var/www/admin/connect.php');

在文件夹中,您可以使用字符串中的..上传文件夹。

// Here it is redundant because you are exiting a folder and re-entering it.
include('/var/www/admin/../admin/connect.php');

您也可以使用代字号~来引用您的用户主目录(无论哪个用户正在运行您的服务器软件)。

include('~/admin/connect.php');

使用简单的引用包含所需文件非常简单。

的index.php

<?php
  // Here you need to go up a folder to reach the connect script.
  include('admin/connect.php');
?>

/admin/connect.php

<?php
  // Here config is in the same folder as connect, so it can be referenced as such.
  include('config.php');
?>