在循环中包含变量文件名

时间:2015-04-03 16:27:33

标签: php mysql

$result好的 并且$inclusion是一个实际的文件名

我想这样做:

while ($row = mysqli_fetch_array($result)){

 $inclusion = $row['filename'] ;

 // check if file exists here

 include $inclusion ;

}

但它没有循环......而是在第一次包含后停止......为什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

这应该适合你:

这里我首先将所有文件添加到数组$files。在此之后我array_filter()所有文件都不存在,只使用array_unique()的唯一文件。

最后,我只使用array_map()遍历所有文件,然后因为您没有路径形成服务器根目录,但是从服务器磁盘,我只需要basename()(意味着文件名)并将其与__DIR__连接以包含它。

<?php

    while ($row = mysqli_fetch_array($result)){
        $files[] = $row['filename'];
    }

    $files = array_unique(array_filter($files, function($v){
        return file_exists($v);
    }));

    array_map(function($v){
        require_once(__DIR__ . "/" . basename($v));
    }, $files);

?>
相关问题