Mailinglisten-Archive |
Gemander, Ronny wrote:
> Hallo Liste,
>
> Ich habe ein DMS geschrieben, welches er unter anderem ermöglicht,
> Windows Word Dateien hochzuladen.
>
> Nun macht sich der gemeine Anwender ja keinerlei Gedanken um einen
> Dateinamen und nennt seine Datei meinetwegen "Übersicht grüner Gurken
> für Döner.doc"
>
> Ein preg_replace('/ü/','ue',$filename); bringt irgendwie nicht so sehr
> viel, weil die Umlaute im Dateinamen ein anderes, mir unbekanntes,
> Format haben.
>
> Kennt sich da wer aus, welchen regex man nehmen könnte, groß-, und auch
> klein geschriebene Umlaute zu ersetzen? Den Regex für die Leerzeichen
> hab ich schon.
Dafür ein regex zu nehmen ist -tut mir leid- ein echt blöde Idee. Das
ist langsam und machts nichts anderes als ein str_replace in diesem Fall
auch tun würde.
Was dein Zeichensatzproblem betrifft hast du wahrscheinlich nur
iso-8559-1 und utf-8. Die sicherste Lösung um alle üs zu ersetzen wäre
dann wohl:
str_replace(array("\x81","\x0\xfc"),'ue',$dateiname);
Vorrausgesetzt ich war jetzt gerade in der Lage die hex Zahlen korrekt
von diesen beiden Seite abzulesen:
http://www.asciitable.com/
http://www.unicode.org/charts/PDF/U0080.pdf
;-).
Mit der Lösung musst du dir dann auch keine Gedanken mehr darüber
machen, ob deine php-Datei in unicode oder in iso-8559-1 encodiert ist.
>
> Vielen Dank für eure Hilfe.
>
> Gruß, Ronny
Yannik
php::bar PHP Wiki - Listenarchive