sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo buscar imágenes por nombre dentro de una carpeta?

Esto parece un trabajo para glob , que devuelve una matriz de nombres de archivo que coinciden con un patrón específico. Soy consciente de la otra respuesta que acabo de publicar, pero proporcionemos una alternativa a la expresión regular.

De acuerdo con el comentario principal en la página de documentos, lo que podría hacer es algo como esto:

<?php
    $dirname = "photos";
    $filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);

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

El GLOB_BRACE Las opciones le permiten especificar una lista de valores entre llaves, y los asteriscos que los rodean permiten que esos números aparezcan en cualquier parte del nombre del archivo. Luego puede iterar sobre la matriz devuelta y hacer lo que quiera con $filename .

Podrías usar tu ejemplo for loop para construir automáticamente una cadena para pasar a glob .

Aquí está el resultado cuando ejecuté esto en un directorio de prueba que hice:

photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp

Tenga en cuenta que otro archivo que puse allí, a386b.xlsx , no coincide con el patrón y no aparece en la lista.