После добавления статьи и вывода списка статей на главной странице своего самописного блога возник вопрос об анонсе. Если обрезать определенное количество символов, то обрезаются и хтмл теги добавляемые текстовым редактором. От такого «анонсирования» верстка ползет по швам. И, ясное дело, меня не устраивает. После неслабого наряга в этой связи решение было найдено. Вот он метод для создания правильного анонса.
Переменная $anons_tag хранит в себе текст тега анонса. Он может быть любым. Его вы вставляете в конце анонса.
function anons($html = '') { $html = trim($html); $anons_tag = "<!-- my-anons -->"; preg_match('/^(.*)' . $anons_tag . '/SUsi',$html,$res); if(!empty($res[1])) $html = $res[1]; #put all opened tags into an array preg_match_all("##iU",$html,$result); $openedtags = array_unique($result[1]); #put all closed tags into an array preg_match_all("##iU",$html,$result); $closedtags = array_unique($result[1]); $len_opened = count($openedtags); # all tags are closed if(count($closedtags) == $len_opened){ return $html; } $openedtags = array_reverse($openedtags); # close tags for($i=0;$i < $len_opened;$i++) { if (!in_array($openedtags[$i],$closedtags)){ $html .= ''; } else { unset($closedtags[array_search($openedtags[$i],$closedtags)]); } } return $html; }
Переменная $anons_tag хранит в себе текст тега анонса. Он может быть любым. Его вы вставляете в конце анонса.
