使用glob() - PHP从目录中获取某些文件

时间:2014-11-11 12:54:42

标签: php glob

基本上我想使用glob()从目录中获取文件。文件格式如下:

052013.www.test1.com.txt
052014.www.test1.com.txt
062014.www.test1.com.txt
072014.www.test1.com.txt
082014.m.test1.com.txt
092014.test1.com.txt

我想只获得一年的文件(即$_SESSION['year']),其中包含wwwm,所以这里是我的功能:

function get_files(){
    $dir = DOCUMENT_ROOT;
    $hostname = HOST;
    $files = array();
    $scan = glob($dir."{*".$_SESSION['year'].".m.,*".$_SESSION['year'].".www.}".$hostname.".txt", GLOB_BRACE | GLOB_NOCHECK );
    foreach ( $scan as $file ) {
      $files[] = $file;
    }
    return $files;
}

这里的问题是,当它找不到任何文件时,例如www它会返回此信息:

Array
(
    [0] => /var/www/stats/082014.m.test1.com.txt
    [1] => /var/www/stats/*2014.www.test1.com.txt
)

我在这个职能部门犯的错误是什么?非常感谢。

1 个答案:

答案 0 :(得分:0)

  

GLOB_NOCHECK - 如果找不到与之匹配的文件,则返回搜索模式

你可以删除GLOB_NOCHECK,如果没有“www”文件,glob函数将不会返回结果数组中的模式。