Как стать автором
Поиск
Написать публикацию
Обновить

Правильный анонс к тексту или закрываем незакрытые теги

Время на прочтение1 мин
Количество просмотров1.5K
После добавления статьи и вывода списка статей на главной странице своего самописного блога возник вопрос об анонсе. Если обрезать определенное количество символов, то обрезаются и хтмл теги добавляемые текстовым редактором. От такого «анонсирования» верстка ползет по швам. И, ясное дело, меня не устраивает. После неслабого наряга в этой связи решение было найдено. Вот он метод для создания правильного анонса.


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 хранит в себе текст тега анонса. Он может быть любым. Его вы вставляете в конце анонса.
Теги:
Хабы:
Всего голосов 18: ↑6 и ↓12-6
Комментарии15

Публикации

Ближайшие события