В основном я хочу получить файлы из каталога, используя 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']
) и это имеет 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
)
Какую ошибку я делаю в своей функции здесь? Очень признателен.
GLOB_NOCHECK — вернуть шаблон поиска, если не найдено ни одного файла, соответствующего ему
Вы можете просто удалить GLOB_NOCHECK и, если нет файлов «www», функция glob не будет возвращать шаблон в массиве результатов.
Других решений пока нет …