2014-10-11 2 views
1

Как проверить имена файлов с помощью preg_match в PHP?Preg-match filenames with hypens

Имя файла = 2.pdf

Он также должен соответствовать, если другой файл называется 2-2.pdf или 2-3.pdf.

Это идентификатор до смерти. Не нужно проверять расширение файла .pdf.

$id = 2; 
$list = scandir("D:/uploads/"); 
$list = preg_grep("/^".$id."$/", $list); 

foreach ($list as $file) 
{ 
    echo $file . "<br />"; 
} 

ответ

1

Как насчет:

/^$id(?:-\d+)?/ 

Объяснение:

/  : delimiter 
^  : begining of strig 
$id  : the id defined earlier 
(?:  : begining of non capture group 
    _ : a dash 
    \d+ : one or more digits 
)?  : end of group, optional 
/  : delimiter 

Использование:

$list = preg_grep("/^$id(?:-\d+)?/", $list);