Christian Seiler: Frage stellt sich unerwartet erneut

Beitrag lesen

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