Есть ли простой способ потребовать все файлы в папке?
Требовать все файлы в папке
Ответ 1
Невозможно выполнить это, вам нужно реализовать его на PHP. Что-то вроде этого должно быть достаточно:
foreach (scandir(dirname(__FILE__)) as $filename) {
$path = dirname(__FILE__) . '/' . $filename;
if (is_file($path)) {
require $path;
}
}
Ответ 2
Возможно, только сделав что-то вроде этого:
$files = glob($dir . '/*.php');
foreach ($files as $file) {
require($file);
}
Возможно, более эффективно использовать opendir()
и readdir()
чем glob()
.
Ответ 3
Нет простого способа, как в Apache, где вы можете просто Include /path/to/dir
, и все файлы будут включены.
Возможным способом является использование RecursiveDirectoryIterator из SPL:
function includeDir($path) {
$dir = new RecursiveDirectoryIterator($path);
$iterator = new RecursiveIteratorIterator($dir);
foreach ($iterator as $file) {
$fname = $file->getFilename();
if (preg_match('%\.php$%', $fname)) {
include($file->getPathname());
}
}
}
Это приведет к удалению всех .php
конечных файлов из $path
, независимо от того, насколько они глубоки в структуре.
Ответ 4
Простой:
foreach(glob("path/to/my/dir/*.php") as $file){
require $file;
}
Ответ 5
Используйте контур foreach
.
foreach (glob("classes/*") as $filename) {
require $filename;
}
Подробнее см. этот ранее опубликованный вопрос:
Ответ 6
рекурсивно весь список файлов и require_once в одном каталоге:
$files = array();
function require_once_dir($dir){
global $files;
$item = glob($dir);
foreach ($item as $filename) {
if(is_dir($filename)) {
require_once_dir($filename.'/'. "*");
}elseif(is_file($filename)){
$files[] = $filename;
}
}
}
$recursive_path = "path/to/dir";
require_once_dir($recursive_path. "/*");
for($f = 0; $f < count($files); $f++){
$file = $files[$f];
require_once($file);
}
Ответ 7
Мой способ требовать всех братьев и сестер:
<?php
$files = glob(__DIR__ . '/*.php');
foreach ($files as $file) {
// prevents including file itself
if ($file != __FILE__) {
require($file);
}
}
Ответ 8
Как функция require_all():
//require all php files from a folder
function require_all ($path) {
foreach (glob($path.'*.php') as $filename) require_once $filename;
}