Sonderzeichen mit preg_replace ersetzen

Bernd_Munich

Mitglied
Hallo,

vielleicht kann mir ja hier jemand helfen? Ich möchte in einem Dateinamen alle Sonderzeichen z.B. durch einen _ Unterstrich ersetzen und vielleicht noch äöüß nach ae etc. umwandeln.

Gültige Zeichen sollen sein: a-z A-Z 0-9 - _ (Also Angabe einer Positiv-Liste), alles andere soll durch einen _ Unterstrich ersetzt werden.

Ich denke preg_replace ist die richtige Funktion dafür, blicke aber durch die komplizierte Syntax leider nicht durch.

Danke Bernd
 
Hallo Gumbo,

danke - die Syntax werde ich mir mal unters Kopfkissen legen!

Geht das mit den äöüß auch einfacher:

Code:
$patterns[0] = '/ä/';
$patterns[1] = '/Ä/';
$patterns[2] = '/ö/';
$patterns[3] = '/Ö/';
$patterns[4] = '/ü/';
$patterns[5] = '/Ü/';
$patterns[6] = '/ß/';
$patterns[7] = '/[^a-zA-Z0-9_-]/u';
$replacements[0] = "ae";
$replacements[1] = "AE";
$replacements[2] = "oe";
$replacements[3] = "OE";
$replacements[4] = "ue";
$replacements[5] = "UE";
$replacements[6] = "ss";
$replacements[7] = "_";
$picture1name = preg_replace($patterns, $replacements, $picture1name);

Danke Bernd
 
Zurück