Подстрока PHP, но с сохранением HTML-тегов?

Мне интересно, есть ли элегантный способ обрезать какой-то текст, но будучи тегом HTML осведомлено?

Например, у меня есть такая строка:

$data = '<strong>some title text here that could get very long</strong>';

И скажем, мне нужно вернуть / вывести эту строку на страницу, но я бы хотел, чтобы она состояла не более чем из X символов. Скажем, 35 ​​для этого примера.

Затем я использую:

$output = substr($data,0,20);

Но теперь я получаю:

<strong>some title text here that 

, который, как вы видите, закрывающие сильные теги отбрасываются, что нарушает отображение HTML.

Есть ли способ обойти это? Также обратите внимание, что в строке может быть несколько тегов, например:

<p>some text here <strong>and here</strong></p>
20
задан 19 January 2012 в 21:24
поделиться