Вы не зашли.
Главная » PHP » Вывод файлов из директории по маске
#1. WapStyle Off (3)
Участник
2023.11.23 16:04
Вывожу файлы из директории по маске
Например файл "выааываыв.[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
Вложения
Screenshot_1.png 42kb {309x967} [загрузок: 25]
Отредактировано WapStyle (2023.11.23 16:04)
#2. Gemorroj Off (107)
Administrator
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);
#3. WapStyle Off (3)
Участник
2023.11.23 17:05
Да только те файлы которые содержат в имени [тут текст]
короче плюнул на эту идею...
по старинке
Код:
// Проверка временной папки на наличие новых файлов
$files = glob($patch['temp'].'*.mp3');
foreach($files as $file)
{
// Вытащим записи между []
preg_match('/\.\[(.*?)\]/', $file, $matches);
// Запись между .[] должна быть не пустой
if(empty($matches[1])) continue;
Отредактировано WapStyle (2023.11.23 18:06)
#4. Gemorroj Off (107)
Administrator
2023.11.23 20:08
так можно.
Код:
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
Главная
WEB
PunBB Mod v0.6.2
0.016 s