Предварительно сопоставить имена файлов с помощью hypens

Как проверить имена файлов с помощью preg_match в PHP?

Имя файла = 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

Решение

Используйте это регулярное выражение

/^2[-.]/

Демо-версия: http://regex101.com/r/aJ7cK0/1

0

Другие решения

Как насчет:

/^$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);
1

По вопросам рекламы [email protected]