Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como pesquisar imagens por nome dentro de uma pasta?


Isso parece um trabalho para glob , que retorna uma matriz de nomes de arquivo que correspondem a um padrão especificado. Estou ciente da outra resposta postada, mas vamos fornecer uma alternativa ao regex.

De acordo com o comentário principal na página de documentos, o que você poderia fazer é algo assim:
<?php
    $dirname = "photos";
    $filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);

    foreach ($filenames as $filename)
    {
        echo $filename . "<br />";
    }
?>

O GLOB_BRACE options permite especificar uma lista de valores entre chaves, e os asteriscos ao redor deles permitem que esses números apareçam em qualquer lugar no nome do arquivo. Você pode então iterar sobre o array retornado e fazer o que quiser com $filename .

Você pode usar seu exemplo for loop para construir automaticamente uma string para passar para glob .

Aqui está a saída quando eu executei isso em um diretório de teste que fiz:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp

Observe que outro arquivo que coloquei lá, a386b.xlsx , não correspondeu ao padrão e não aparece na lista.