Hi,
Habe das Problem, dass ich in PHP alle Umlaute (also ä,ö,ü, usw, aber auch Ø, ñ, å usw) eines Strings in entsprechende "normale" zeichen umwandeln muss.
Also aus ä wird ae, aus Ø wird O, aus ñ wird n, usw.
Das ganze brauche ich in meinem Content Management System, welches die Möglichkeit bietet, den dynamischen Seiten "virtuelle Pfade" zu zuordnen.
Über das Backend (Admin-Oberfläche) kann der virtuelle Pfad dieser Datei eingegeben werden. Und wenn man dies nicht manuell macht, übernimmt das System den Namen der Seite als Pfad. Da dieser nachher die URL wird, sollte der string schon http://www.w3.org/Addressing/URL/5_URI_BNF.html entsprechen.
Bis jetzt mache ich das so (es werden sonderzeichen, umlaute einfach rausgefiltert):
$dir = str_replace("&", " and ", $dir); #& im namen ist ok, in der URL nicht!
$dir = ereg_replace("[ \t\n\r]+","_",$dir); # alle whitespaces raus
$dir = ereg_replace("[^a-zA-Z0-9-\_@.&!\*(),]","",$dir); #alles auser "lieben" zeichen raus!
$dir = str_replace("\","",$dir); # wir wollen die browser ja nicht mit backslashes überfordern ;-)
Natürlich könnte ich jetzt einfach die Umlaute mit einem replace-befehl ersetzen, ich denke aber, dass es da eine elegantere variante gibt. Z.B. gibt es in den ASCII-codes ein System, dass z.B. Umlaute seinem "Träger" zuordnen lässt (also eine mathematische berechnung)?
Bin für jede Idee dankbar!
Gruss,
Patrick