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