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

Php包含包含其他文件的不同文件夹中的文件,php,mysql,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.ph

我是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'
$directory = getcwd();
chdir(__DIR__);
include "config.php";
chdir($directory);
<?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';
<?php

include ADMIN_ROOT.'config.php';
connect.php

include './admin/connect.php'
$directory = getcwd();
chdir(__DIR__);
include "config.php";
chdir($directory);
<?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';
<?php

include ADMIN_ROOT.'config.php';
这实际上是工作,但不知何故,我不喜欢改变工作目录的想法

include('/var/www/admin/connect.php');
有没有更好的方法来实现我的目标?

当使用
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');
?>

您可以在index.php的顶部放置以下行

index.php

include './admin/connect.php'
$directory = getcwd();
chdir(__DIR__);
include "config.php";
chdir($directory);
<?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';
<?php

include ADMIN_ROOT.'config.php';

为什么索引不能同时包含这两个路径?请使用绝对路径。使用
$\u服务器[DOCUMENT\u ROOT']
作为基本值,然后在其中包含“from”。这样,无论“主”脚本实际位于何处,它都能工作
connect.php
文件中,类似于@CBroe@Rasclatt:事实上,这比使用文档根目录更好…键入的字符更少。(另外,文档根目录在某些情况下可能会导致问题,例如,某些托管提供商以一种奇怪的方式对其进行了配置,并且您永远无法确定它是否包含尾部斜杠…)我的意思是:“
//此处config与connect位于同一文件夹中,因此它可以被引用。include('config.php');
”最后我使用了
include\uuuuu DIR\uuuu.'/config.php”。