• Главная
  • » PHP
  • » Вывод файлов из директории по маске

#1 2023.11.23 16:33

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Вывод файлов из директории по маске

Вывожу файлы из директории по маске
Например файл "выааываыв.[sadasd].mp3

Код:

1
2
3
4
5
6
$files = glob($patch['temp'].'*.mp3');
$filter = preg_grep('/\.\[[\w+]+\]/', $files);
//$filter = preg_grep('/\.\[\w+\]/', $files); //пробовал так
foreach($filter as $file)
{
}

Оба варианта выводят не все файлы содержащую данную маску.
Что я делаю не так?

вот файлы эти не видит
если сделать

Код:

1
2
$files = glob($patch['temp'].'*.mp3');
var_dump($files);

покажет все файлы, значит где-то ошибка в preg_grep


Вложения

Отредактировано WapStyle (2023.11.23 16:37)

Неактивен

#2 2023.11.23 16:46

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Вывод файлов из директории по маске

не очень понимаю, что ты пытаешься сделать регуляркой.
тебе нужны не просто mp3 файлы, а еще с каким-то текстом в имени?
Добавлено спустя   5 минут  8 секунд:
попробуй через итератор что-ли

Код:

1
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 2023.11.23 17:25

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Вывод файлов из директории по маске

Да только те файлы которые содержат в имени [тут текст]
короче плюнул на эту идею...
по старинке

Код:

1
2
3
4
5
6
7
8
// Проверка временной папки на наличие новых файлов
$files = glob($patch['temp'].'*.mp3');
foreach($files as $file)
{
// Вытащим записи между []
preg_match('/\.\[(.*?)\]/', $file, $matches);
// Запись между .[] должна быть не пустой
if(empty($matches[1])) continue;

Отредактировано WapStyle (2023.11.23 18:02)

Неактивен

#4 2023.11.23 20:04

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Вывод файлов из директории по маске

так можно.

Код:

1
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/

Неактивен

  • Главная
  • » PHP
  • » Вывод файлов из директории по маске

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.012 s