要求文件夹中的所有文件

有一个简单的方法来要求文件夹中的所有文件?

没有一个简单的方法,你需要在PHP中实现它。 像这样的东西应该足够了:

foreach (scandir(dirname(__FILE__)) as $filename) { $path = dirname(__FILE__) . '/' . $filename; if (is_file($path)) { require $path; } } 

大概只有这样做:

 $files = glob($dir . '/*.php'); foreach ($files as $file) { require($file); } 

使用opendir()readdir()glob()更有效。

有没有简单的方法,如在Apache中,你可以只Include /path/to/dir ,所有的文件包括在内。

一种可能的方法是使用SPL中的RecursiveDirectoryIterator :

 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()); } } } 

这将从$path拉出所有的.php结尾文件,不pipe它们在结构中有多深。

简单:

 foreach(glob("path/to/my/dir/*.php") as $file){ require $file; } 

使用foreach循环。

 foreach (glob("classes/*") as $filename) { require $filename; } 

有关更多详细信息,请查看以前发布的问题 :

recursion地将所有文件列表和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); } 

我的方式要求所有的兄弟姐妹:

 <?php $files = glob(__DIR__ . '/*.php'); foreach ($files as $file) { // prevents including file itself if ($file != __FILE__) { require($file); } } 

作为require_all()函数:

 //require all php files from a folder function require_all ($path) { foreach (glob($path.'*.php') as $filename) require_once $filename; }