У меня есть папка, которую я сканирую на php-странице, вводя все имена файлов (и имена каталогов) в массив, называемый struct, который я затем должен проанализировать и проверить две вещи:
1) если имя файла совпадает с шаблоном из 5-8 строчных букв, за которыми следует знак подчеркивания, два числа и заканчиваются расширением .jpg, для которого я пытался использовать
$pattern = '~[a-z]{5,8}_\d{1,2}\.jpg~';
2) получить номер из имени файла и передать его как int, для которого я попытался использовать
$getnumber = '~(?<=_)\d+(?=\.)~';
Первый шаблон , кажется, работает, даже когда вызывается с
if ((preg_match($pattern, $entry) === 0) && (!in_array($entry, $wrongformat)))
но пытаюсь получить номера файлов
с
$temp[] = preg_grep($getnumber, $struct);
print_r($temp);
возвращает 1 в каждом элементе. Как я могу получить фактическое число внутри имени файла?
Это только вершина айсберга, его необходимо координировать с другими системами, поэтому использование чего-то простого, например, взрыва, не годится для текущей установки по разным причинам (главным из которых является то, что Босс сказал так ). Мой текущий опыт регулярных выражений - 4 часа Google-фу, поэтому ЛЮБАЯ помощь будет признательна.