Prüfen ob Dateiname String einem Dateisuchmuster mit Wildcards entspricht

Kitro

Grünschnabel
Hallo Leute

Folgendes Problem ich habe eine Liste mit Dateien ($_Files)hochgeladen.
Jetzt möchte ich prüfen, ob von diesen Dateien die Dateinamen verschiedenen Pfadangaben entsprechen. Die Pfadangaben enthalten Wildcards / Platzhalter.

Beispiel:
Hochgeladen wurde $Dateiname:
Meier_1r.txt
Mirkel_33t.csv
Nurs_54u.dat
(Die Dateinamen sind beliebig)

Diese Strings sollen gegen folgende Pfadangaben $Prüfe geprüft werden:
M*_*u.*
*_*t.csv
*.dat
*i*3*.csv
(Wichtig: Die Prüfpfade sind beliebig, aber sollen keine speziellen Regexe sein sondern denen des typischen Dos Dir Befehls entsprechen)

Je nachdem ob ein Dateiname zutrifft, soll dann mit diesem individuell weitegearbeitet werden.

Gibts unter PHP irgendeine Funktion in Form von Path_Match($Prüfe, $Dateiname) ?

Grüße Kitro
 
Mache regex draus
'.' -> '\.'
'?' ->'.?'
'*' -> '.*'
Das ganze noch in ^....$ fassen und fertig sit dein regex

Und schon kannst du mit preg_match() prüfen.
 
THX für deine Antwort.

Habe noch einen Befehl gefunden:
fnMatch($Prüfe, $Dateiname, FNM_PATHNAME & FNM_CASEFOLD) //result=bool

Was meinst du, ist der gut oder macht der andersweitig Probleme?
 
Kann man sicher nutzen, wobei ich grundsätzlich nicht den Vorteil zu preg_match sehe. Die Doku zu fnmatch sagt:

The average user may be used to shell patterns or at least in their simplest form to '?' and '*' wildcards so using fnmatch() instead of preg_match() for frontend search expression input may be way more convenient for non-programming users.

Na ja. Wäre jetzt wohl auch nicht so der große Akt, eine derartige „simplifizierte“ Eingabe so umzustricken, dass sie einen gültigen regulären Ausdruck ergibt. Aus Backend-Sicht sehe ich die Vorteile in jedem Fall bei den preg_*-Funktionen. Allein schon wegen KISS. Warum eine neue Syntax mit ihren Ecken und Kanten lernen, wenn man reguläre Ausdrücke so oder so kennen muss?

Aber das nur so am Rande. Eine Prinzipsache würde ich daraus auch nicht machen.
 

Neue Beiträge

Zurück