Я получаю большой контент из API, что-то вроде этого:
Lorem <div class="highlighted">ipsum dolor</div>
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur
Я хочу показать около 10 слов из этого контента.А также я не хочу пропустить часть <div class="highlighted">ipsum dolor</div>
.Я имею в виду div
и class="highlighted"
не должны быть удалены.
Я попробовал эту функцию:
function getPartialContent($content, $words_number)
{
$no_tags_content = preg_replace("/\r|\n/", "", html_entity_decode(filter_var($content, FILTER_SANITIZE_STRING)));
$words = explode(" ", $no_tags_content);
$result = implode(" ", array_splice($words, 0, $words_number));
return $result;
}
Единственная проблема состоит в том, что эта функция сначала удаляет все html-теги.Если я не использую preg_replace
для удаления тегов html, результат будет примерно таким (div не закрыт):
Lorem sed do eiusmod tempor incididunt is that this <div class="highlighted">ipsum
, что не то, что я хочу.
Я ожидаю, что результат будет с закрытыми тегами или вообще без тегов.Обычно в div
есть одно или два слова.Количество слов в результате не так важно.Я просто хочу, чтобы оно было коротким, примерно от 10 до 15 слов.