Hi!
(2) Teile vor erstem (s1) und nach letztem (s2) auslesen
Sind s1 und s2 eigentlich zwei Stück String oder zwei Positionsangaben?
Und natürlich verdient keine der Funktionen die Bezeichnung Stringfunktion.
Es gibt sie aber alle als Stringfunktionen – jeweils mit mb_ davor: mb_strstr, mb_strrpos, mb_substr.
Diese sollte man verwenden, nicht die nutzlosen anderen Bytekttenverarbeitungsfunktionen.
Die anderen reichen doch perfekt für Single-Byte-Encodings. Die generelle Empfehlung der Multi-Byte-Funktionen halte ich nicht für zwangsläufig zielführend, ohne dabei zu erwähnen, dass neben dem Lösen des aktuellen Problems ein eventuell sehr großer Umstellaufwand verbunden ist. Nur einen Teil der Aufgaben damit zu bearbeiten, bringt unter Umständen mehr Komplikationen als es eigentliche Probleme löst. Außerdem ist der Umstellaufwand beim Umstieg auf Version 6 noch einmal vorhanden, wenn die gewöhnlichen Stringfunktionen mehrbytefähig und die mb-Funktionen überflüssig werden. Weiterhin reicht es nicht, einfach die mb-Funktionen zu verwenden, mann muss auch noch angeben, mit welcher Kodierung sie arbeiten sollen, sonst ist es nämlich auch nicht besser als Byte-Funktionen auf Mehrbyte-Kodierungen loszulassen.
Also erstmal klären, welche Kodierung vorliegt und ob sich der Aufwand eines Umstiegs lohnt.
Lo!