sql >> Databasteknik >  >> RDS >> Mysql

Hur söker man bilder efter namn i en mapp?

Det här ser ut som ett jobb för glob , som returnerar en uppsättning filnamn som matchar ett angivet mönster. Jag är medveten om det andra svaret som precis lades upp, men låt oss ge ett alternativ till regex.

Enligt den översta kommentaren på dokumentsidan, vad du kan göra är ungefär så här:

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

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

GLOB_BRACE alternativ låter dig ange en lista med värden inom klammerparenteser, och asteriskerna runt dem låter dessa siffror visas var som helst i filnamnet. Du kan sedan iterera över den returnerade arrayen och göra vad du vill med $filename .

Du kan använda ditt exempel for loop för att automatiskt bygga en sträng för att skicka till glob .

Här är resultatet när jag körde detta på en testkatalog som jag skapade:

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

Observera att en annan fil jag lagt in där, a386b.xlsx , matchade inte mönstret och visas inte på listan.



  1. data som skrivs in i textområdet kommer inte in i databasen utformad med php och mysqli

  2. PostgreSQL-handledning för nybörjare – Allt du behöver veta om PostgreSQL

  3. Generisk Ruby-lösning för SQLite3 LIKE eller PostgreSQL ILIKE?

  4. Kan inte hitta tabellen v$parameter i Oracle