Mysql
 sql >> Database >  >> RDS >> Mysql

Come cercare le immagini per nome all'interno di una cartella?

Sembra un lavoro per glob , che restituisce una matrice di nomi di file che corrispondono a un modello specificato. Sono a conoscenza dell'altra risposta appena pubblicata, ma forniamo un'alternativa alla regex.

Secondo il commento in alto nella pagina dei documenti, quello che potresti fare è qualcosa del genere:

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

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

Il GLOB_BRACE opzioni ti consente di specificare un elenco di valori tra parentesi graffe e gli asterischi intorno ad essi consentono a quei numeri di apparire ovunque nel nome del file. Puoi quindi scorrere l'array restituito e fare quello che vuoi con $filename .

Potresti usare il tuo esempio for loop per creare automaticamente una stringa da passare a glob .

Ecco l'output quando l'ho eseguito su una directory di test che ho creato:

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

Nota che ho inserito un altro file, a386b.xlsx , non corrisponde al modello e non appare nell'elenco.