sql >> Database >  >> RDS >> Mysql

Hoe afbeeldingen zoeken op naam in een map?

Dit ziet eruit als een taak voor glob , die een reeks bestandsnamen retourneert die overeenkomen met een opgegeven patroon. Ik ben me bewust van het andere antwoord dat zojuist is gepost, maar laten we een alternatief bieden voor regex.

Volgens de bovenste opmerking op de documentenpagina zou je zoiets als dit kunnen doen:

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

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

De GLOB_BRACE Met opties kunt u een lijst met waarden tussen accolades opgeven en de sterretjes eromheen zorgen ervoor dat die nummers overal in de bestandsnaam kunnen verschijnen. Je kunt dan de geretourneerde array herhalen en doen wat je wilt met $filename .

Je zou je voorbeeld for . kunnen gebruiken lus om automatisch een tekenreeks op te bouwen om door te geven aan glob .

Dit is de uitvoer toen ik dit uitvoerde in een testmap die ik heb gemaakt:

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

Merk op dat een ander bestand dat ik daar heb geplaatst, a386b.xlsx , kwam niet overeen met het patroon en staat niet in de lijst.



  1. C# MySQL tweede DataReader in DataReader while-lus

  2. Rij naar kolom transformatie in MySQL

  3. Query's herschrijven om de prestaties te verbeteren

  4. MySQL toevoegtekenreeks