Вы не зашли.
Главная »
PHP » Вывод файлов из директории по маске
Вывожу файлы из директории по маске
Например файл "выааываыв.[sadasd].mp3
Код:
$files = glob($patch['temp'].'*.mp3'); |
$filter = preg_grep('/\.\[[\w+]+\]/', $files); |
//$filter = preg_grep('/\.\[\w+\]/', $files); //пробовал так |
foreach($filter as $file) |
{ |
} |
Оба варианта выводят не все файлы содержащую данную маску.
Что я делаю не так?
вот файлы эти не видит
если сделать
Код:
$files = glob($patch['temp'].'*.mp3'); |
var_dump($files); |
покажет все файлы, значит где-то ошибка в preg_grep
Отредактировано WapStyle (2023.11.23 16:04)
не очень понимаю, что ты пытаешься сделать регуляркой.
тебе нужны не просто mp3 файлы, а еще с каким-то текстом в имени?
Добавлено спустя 5 минут 8 секунд: попробуй через итератор что-ли
Код:
span style="color: #0000BB"><?php/** @var \SplFileInfo[] $result */$result = [];$dir = __DIR__;/** @var \SplFileInfo $fileInfo */foreach (new \DirectoryIterator($dir) as $fileInfo) { if (!$fileInfo->isFile()) { continue; } if (\strtolower($fileInfo->getExtension()) !== 'mp3') { continue; } $result[] = $fileInfo->getFileInfo();}\print_r($result); |
Да только те файлы которые содержат в имени [тут текст]
короче плюнул на эту идею...
по старинке
Код:
// Проверка временной папки на наличие новых файлов |
$files = glob($patch['temp'].'*.mp3'); |
foreach($files as $file) |
{ |
// Вытащим записи между [] |
preg_match('/\.\[(.*?)\]/', $file, $matches); |
// Запись между .[] должна быть не пустой |
if(empty($matches[1])) continue; |
Отредактировано WapStyle (2023.11.23 18:06)
так можно.
Код:
span style="color: #0000BB"><?php/** @var \SplFileInfo[] $result */$result = [];$dir = __DIR__;/** @var \SplFileInfo $fileInfo */foreach (new \DirectoryIterator($dir) as $fileInfo) { if (!$fileInfo->isFile()) { continue; } if (\strtolower($fileInfo->getExtension()) !== 'mp3') { continue; } if (!\preg_match('/\[+\w+\]+/', $fileInfo->getFilename())) { continue; } $result[] = $fileInfo->getFileInfo();}\print_r($result); |
регулярки тут тестирвоать можно, например
https://regex101.com/
Страниц: 1