需要文件夹中的所有文件

nev*_*ame 48 php

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

Tom*_*igh 49

可能只做这样的事情:

$files = glob($dir . '/*.php');

foreach ($files as $file) {
    require($file);   
}
Run Code Online (Sandbox Code Playgroud)

这可能是使用更高效opendir()readdir()glob().

  • @BorisŠuška:问题是"如何要求文件夹中的所有文件".没有要求递归或处理包含代码的php文件将在同一文件夹中的情况. (7认同)

sou*_*rge 23

没有简短的方法,你需要在PHP中实现它.这样的事情应该足够了:

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

  • 该特定片段不会将自身包含在无限循环中吗?另外,您可以使用“__DIR__”代替“dirname(__FILE__)”。但我大致了解了。 (2认同)

K. *_*ert 12

没有简单的方法,就像在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());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

无论它们在结构中有多深,这都将从中拉出所有.php结束文件$path.


Tan*_*ger 9

简单:

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


Jos*_*ter 5

使用foreach循环。

foreach (glob("classes/*") as $filename) {
  require $filename;
}
Run Code Online (Sandbox Code Playgroud)

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