Но бывает так, что надо вывести цитату определенной длины, не потеряв при этом форматирование.
Но при попытке сохранить форматирование, обрезав контент, мы также обрезаем теги и получаем в итоге "кашу" на странице.
Для решения проблемы нам надо закрыть все теги для обрезанного контента.
К счастью php, начиная с версии 5,4 поддерживает Tidy HTML - утилиту для очистки и восстановления HTML.
$tidy_config = array( 'char-encoding' => 'utf8', 'clean' => true, 'output-html' => true, 'input-html' => true, 'wrap-attributes' => true, 'wrap-php' => false, 'wrap' => 0); // закрываем открытые html tags $tidy = tidy_parse_string($out, $tidy_config, 'UTF8'); $tidy->cleanRepair(); $out = $tidy;
Вот окончательная функция для получения корректной цитаты с сохранением форматирования.
За основу я взял скрипт с сайта wp-kama.ru