Включить стандартный DirectoryIndex

У меня есть ************** index.php и хочу include './'; Но мне failed to open stream: Is a directory

Конечно, я могу include substr($someString, -1)==='/'?$someString.'index.php':$someString; , но есть ли более простой способ? Может быть, что-то в.htaccess или php.ini?

Нет ответа.

2 ответа

Вы не можете включить каталог. PHP будет принимать только допустимый файл в качестве аргумента для include, поэтому, если вы хотите иметь возможность использовать "./" или "somedir/" и найти файл index.php в этом каталоге, вы всегда можете написать которая принимает dir как аргумент и возвращает полный путь к файлу индекса внутри.

Что-то вроде:

function index($dir){
 return substr($dir, -1) === '/' ? $dir.'index.php' : $dir;
}

Затем вы можете вызвать include index("./"); или какое-либо другое имя каталога и вернуть правильную строку.


если вы хотите включить из текущего каталога, вам не нужен какой-либо путь:

include 'index.php';

иначе, если вы хотите включить из удаленных файлов, вы должны начать с http

include 'http://www.example.com/file.txt';

Attn: Windows версии PHP до PHP 4.3.0 не поддерживают доступ к удаленным файлам с помощью этой функции, даже если allow_url_fopen включен.

иначе, если вы хотите включить из относительного пути, вы можете начать '/... тогда вы начинаете с вашего корня хоста или '../...... для постановки из подкаталога.

licensed under cc by-sa 3.0 with attribution.