Но бывает так, что надо вывести цитату определенной длины, не потеряв при этом форматирование.
Но при попытке сохранить форматирование, обрезав контент, мы также обрезаем теги и получаем в итоге "кашу" на странице.
Для решения проблемы нам надо закрыть все теги для обрезанного контента.
К счастью php, начиная с версии 5,4 поддерживает Tidy HTML - утилиту для очистки и восстановления HTML.
1 2 3 4 5 6 7 8 9 10 11 12 13 | $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