Hallo,
Ach ja und dann noch eine Frage: Wenn ich ab sofort nur noch die möglichen mb_* Funktionen anstatt der konventionellen verwende, also auch bei Nicht-UTF-8 Seiten, hat das Nachteile oder ist das problemlos abwärtskompatibel?
Das kann ich mir mittlerweile selbst beantworten. Riesenkacke!
Ein Aufruf unter Verwendung von strtolower dauert microsekunden,
christian@cobalt ~/tmp/forum $ php -r '$anzahl = 1000000; $start = microtime (true); for ($i = 0; $i < $anzahl; $i++) { $v = strtolower("HALLO"); } $ende = microtime (true); printf ("Ein Aufruf durchschnittlich %.6f Mikrosekunden.\n", ($ende - $start) / $anzahl * 1e6);'
Ein Aufruf durchschnittlich 1.144888 Mikrosekunden.
während ein Aufruf mit mb_strtolower() fast eine Sekunde dauert.
php -r '$anzahl = 1000000; $start = microtime (true); for ($i = 0; $i < $anzahl; $i++) { $v = mb_strtolower("HALLO"); } $ende = microtime (true); printf ("Ein Aufruf durchschnittlich %.6f Mikrosekunden.\n", ($ende - $start) / $anzahl * 1e6);'
Ein Aufruf durchschnittlich 11.516928 Mikrosekunden.
Also etwa Faktor 10. Was für Unicode-Unterstützung durchaus vollkommen in Ordnung ist. Das von Dir beschriebene Verhalten kann ich nicht nachvollziehen.
Viele Grüße,
Christian