Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie suche ich Bilder nach Namen in einem Ordner?

Das sieht nach einem Job für glob aus , die ein Array von Dateinamen zurückgibt, die einem bestimmten Muster entsprechen. Ich kenne die andere Antwort, die gerade gepostet wurde, aber lassen Sie uns eine Alternative zu Regex bereitstellen.

Laut dem obersten Kommentar auf der Dokumentationsseite könnten Sie etwa Folgendes tun:

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

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

Der GLOB_BRACE Optionen können Sie eine Liste von Werten in geschweiften Klammern angeben, und die Sternchen um sie herum ermöglichen es, dass diese Zahlen überall im Dateinamen erscheinen. Sie können dann über das zurückgegebene Array iterieren und mit $filename tun, was Sie wollen .

Sie könnten Ihr Beispiel for verwenden Schleife, um automatisch einen String zu erstellen, der an glob übergeben wird .

Hier ist die Ausgabe, als ich dies in einem von mir erstellten Testverzeichnis ausgeführt habe:

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

Beachten Sie, dass ich dort eine weitere Datei eingefügt habe, a386b.xlsx , stimmt nicht mit dem Muster überein und erscheint nicht in der Liste.