A czemu nie skorzystasz z... wyszukiwania ostatniego (
strrpos) i pierwszego (
strpos) wystąpienia spacji?
1. Tniesz ciąg, to zapewne pozbywasz się wszelkich pozbywasz się wszelkich formatowań wpierw. Masz więc plain-text.
2. Tniesz go do wymaganej długości.
3. Sprawdzasz czy w uciętym kawałku ostatni znak to spacja lub przesuwasz offset na długość i sprawdzasz czy pierwszy znak to spacja. Obrazowo to pokażę z | jako miejscem trafienia cięcia:
jakiś |tekst
jakiś| tekst
W obu wypadkach masz wtedy spokój i możesz bez problemu ciąć (w pierwszym możesz jeszcze zrobić rtrim).
4. Jeśli trafisz w sytuację, gdy obie liczby wskażą, iż przeciąłeś gdzieś w środku wyrazu, szukasz ostatniego wystąpienia spacji w odciętym kawałku i ów kawałek od początku do wskazanego miejsca bierzesz.
Nie bawisz się w takiej sytuacji w explode, liczenie i inne cuda. Ale zwróć uwagę, że to jest rozwiązanie gdy nie masz tagów. Jeśli chcesz zachować formatowanie html, to musisz się ładnie pobawić z tym, by zachował strukturę wyciętych tagów i tu już jest trochę zabawy, aczkolwiek są gotowce w sieci jak to zrobić.