Php включает файл в другую папку, в которую входит другой файл

Я новичок в 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); 

Это действительно работает, но почему-то я не люблю идею изменения рабочего каталога.

Есть ли лучший способ достичь моей цели?

Вы можете поместить следующие строки вверху вашего 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'; 

При использовании 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 same-folder script include('config.php'); // Include same-folder subfolder include('admin/config.php'); 

Вы также можете ссылаться на абсолютную позицию файлов, начиная со строки с помощью функции forward-slash / которая приведет вас в корневой каталог.

 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'); ?> в <?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'); ?> в <?php // Here config is in the same folder as connect, so it can be referenced as such. include('config.php'); ?>