2014-11-11 2 views
-2

В основном я хочу получить файлы из каталога с помощью glob(). Формат файла, как это:Получить определенные файлы из каталога с помощью glob() - PHP

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 

И я хотел бы только получить файл из curent года (т.е. $_SESSION['year']) и имеет www или m в нем, так вот моя функция:

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 
) 

что туман Я делаю здесь свою функцию? Очень признателен.

ответ

0

GLOB_NOCHECK - Возвращает шаблон поиска, если никаких файлов, соответствующих его не были найдены

Вы можете просто удалить GLOB_NOCHECK и если нет «WWW» не FILES функция Glob не вернет образец в массив результатов.

Смежные вопросы