Вы не зашли.
    
    Главная » 
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 13:01)
            
        
                
     
        
        
                не очень понимаю, что ты пытаешься сделать регуляркой.
тебе нужны не просто 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 15:03)
            
        
                
     
        
        
                так можно.
Код:
| 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