Hi!
Wenn Dein Text allerdings in Multi-Byte-Codierung vorliegt (z.B. UTF-8), dann musst Du auch die Multibyte-Funktionen dafür verwenden. Sonst kommt nur Blödsinn heraus.
In anderen Fällen ist das möglich, aber nicht beim "erstellt am" und den Datumszahlen. Das sind nur einbytige ASCII-Zeichen.
"erstellt am 3. März 2010"
Das Datumsformat ist schnell geändert, und dann vergisst man, das PHP zu ändern. Monatelang geht’s gut, erst im März fällt’s auf, und dann beginnt das Rätselraten, woher der Fehler kommt.
Ist trotzdem irrelevant. Das Datum spielt sowieso keine Rolle. Den Text davor findet man in beiden Kodierungen (ISO-8859-1, UTF-8) eindeutig. Ob man von dem die Byte- oder Zeichenposition findet ist auch egal, weil das Abschneiden mit beiden Angaben problemlos funktioniert.
Ich weiß nicht, wozu der prähistorische Funktionsschrott in PHP noch drin ist; man sollte keine anderen Stringfunktionen verwenden als die Multibyte-Funktionen. Wenn man von Anfang an Wert auf Internatinalisierung legt, erspart man sich über kurz oder lang (eher kurz) viel Ärger.
Weil wegen: dauert (warum auch immer - hab das nicht mehr im Fokus) ewig bis endlich PHP6 fertig ist. Es ist nicht damit getan, die Stringfunktionen auszutauschen. Da ist eine grundlegende Umgestaltung des gesamten Unterbaus notwendig. Strings spielen nicht nur bei den paar Stringfunktionen eine Rolle. Und wegen
“Internationalization is not a feature. It is an architecture.” (Addison Phillips)
kann man nicht einfach nur ein Feature ändern, sondern muss bei der Architektur anfangen. Und das mach mal, wenn das Haus insgesamt einigermaßen kompatibel weiterfunktionieren soll.
Lo!