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