Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment rechercher des images par nom dans un dossier ?

Cela ressemble à un travail pour glob , qui renvoie un tableau de noms de fichiers correspondant à un modèle spécifié. Je suis au courant de l'autre réponse qui vient d'être publiée, mais proposons une alternative à regex.

D'après le commentaire en haut de la page de documentation, ce que vous pourriez faire ressemble à ceci :

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

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

Le GLOB_BRACE options vous permet de spécifier une liste de valeurs entre accolades, et les astérisques qui les entourent permettent à ces nombres d'apparaître n'importe où dans le nom du fichier. Vous pouvez ensuite parcourir le tableau renvoyé et faire ce que vous voulez avec $filename .

Vous pouvez utiliser votre exemple for boucle pour construire automatiquement une chaîne à passer à glob .

Voici le résultat lorsque j'ai exécuté ceci sur un répertoire de test que j'ai créé :

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

Notez qu'un autre fichier que j'y ai mis, a386b.xlsx , ne correspondait pas au modèle et n'apparaît pas dans la liste.