Die Frage wegen setlocale() (siehe auch weiter oben) ist noch aktuell.
Hilf mir mal wieder auf die Sprünge für was du das in der class.wb.php brauchst.
Erst damit wird das highlighting wirklich komplett...
Zur Zeit klappt das highlighting nicht wenn:
- ein Editor benutzt wird, der keine HTML_Entities erzeugt
und
- sich die Groß/Kleinschreibung von Umlauten im Suchstring und auf der Seite unterscheiden.
(Sprich: man sucht nach "TÜR", auf der Seite steht aber Tür.) Das gilt auch für andere Zeichen, wie áóèýæ... (Bei Verwendung von HTML-Entities klappt das irgenwie 'automagically')
Das liegt daran, daß die Routinen zur Umwandlung der Groß/Klein-Schreibung in der Standard-Konfiguration von PHP von englisch ausgehen, wo es keine Umlaute gibt.
Das kann man natürlich sehr leicht lösen, indem man setlocale(LC_CTYPE, 'de_DE'); setzt, was erstaunlicherweise dann auch für áéæý... funktioniert. (Die Beschränkung auf 'LC_CTYPE' deswegen, weil damit nur "Character classification and case conversion" betroffen sind, sonst würde er auch Fehlermeldungen, Datum und Zeit u.s.w. auf deutsch umstellen.
ABER:
unter Linux funktioniert das obige Beispiel mit setlocale, unter Windows (wenn der Server unter Windows läuft) gibt es da wohl Probleme:
Zitat von
http://de.php.net/manual/en/function.setlocale.php : "Warning
The locale information is maintained per process, not per thread. If you are running PHP on a multithreaded server api like IIS or Apache on Windows you may experience sudden changes of locale settings while a script is running although the script itself never called setlocale() itself. This happens due to other scripts running in different threads of the same process at the same time changing the processwide locale using setlocale()."
Außerdem muß man unter Windows andere Bezeichnungen fürs Lands benutzen, siehe
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp und
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.aspHier fehlt mir einfach das Background-Wissen um zu entscheiden wie kritisch das ist. Ggf. könnte man die setlocale()-Einstellung konfigurierbar machen?
Das ist aber nichts, was sofort erledigt werden müßte.
MfG, Thomas
PS: vielleicht könntest Du nun abschließend die drei geänderten Dateien (search.php search_convert.php und frontend.functions.
php) in der nun "offiziellen" Version als Zip hier einstellen. -- Damit die User die das schon jetzt haben wollen, sich nicht aus den verschiedenen Postings hier die Informationen erst mühsam zusammensuchen müssen.