REGEXP zum Ersetzen von ungültigen Zeichen in Dateinamen
am 26.09.2005 22:19:20 von Ralf GmeinerHallo!
Wie der Titel bereits andeutet suche ich eine REGEXP die mir ungültige
Zeichen in Dateinamen ersetzt. Hintergrund: Ich programmiere ein
Content-Management-System mit der Möglichkeit Dateien hochzuladen, um diese
zum Download anzubieten. Damit die Download-URL keine "kryptischen" Zeichen
enthält möchte ich aber nur folgende Zeichen zulassen (ohne Klammer):
[a-zA-Z0-9_-.] Ungültige Zeichen sollen durch ein _ ersetzt werden.
Mehrfache _ werden durch ein _ ersetzt.
Bsp.: Ich habe die Datei "Öl- & Lackfarben 23.jpg" auf meinem Windows-System
und möchte diese Datei auf den Linux- bzw. Solaris-Webserver beim Hoster
hochladen. Die Datei soll dabei automatisch umbenannt werden in
"Oel-_Lackfarben_23.jpg".
D.h. es sind folgende Ersetzungsschritte notwendig:
1) Umlaute auflösen:
"Öl- & Lackfarben 23.jpg" => "Oel- & Lackfarben 23.jpg"
2) Ungültige Zeichen werden durch "_" ersetzt:
"Oel- & Lackfarben 23.jpg" => "Oel-___Lackfarben 23.jpg"
3) Multiple "_" werden durch einen einfachen Unterstrich ersetzt:
"Oel-___Lackfarben 23.jpg" => "Oel-_Lackfarben 23.jpg"
urlencode() und rawurlencode() liefern mir zwar "sichere" aber nur schwer
lesbare URLs: "%D6l-+%26+Lackfarben+23.jpg" bzw.
"%D6l-%20%26%20Lackfarben%2023.jpg"
Danke für Eure Hilfe!
Viele Grüße
Ralf