Функция закрывает все открытые HTML теги.
Данная функция часто бывает полезной для сохранения валидности странице при выводе не полной новости.
function close_dangling_tags($html){ #put all opened tags into an array preg_match_all("#<([a-z]+)( .*)?(?!/)>#iU",$html,$result); $openedtags=$result[1]; #put all closed tags into an array preg_match_all("#</([a-z]+)>#iU",$html,$result); $closedtags=$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 .= '</'.$openedtags[$i].'>'; } else { unset($closedtags[array_search($openedtags[$i],$closedtags)]); } } return $html; } |
Разработка интернет-магазинов, скриптов, SEO и повышение конвертации.
devul
7 Feb, 2010
а как использовать эту функцию?
Spider
20 Mar, 2010
Функция работает некорректно, т.к. не учитывает одиночные теги типа , которые не надо закрывать
Spider
20 Mar, 2010
парсер скушал тег.
…не учитывает одиночные теги типа <br>
Хакер
11 мая, 2010
Да, не учитывает одиночные теги
Sanfor
5 Feb, 2011
Спасибо! Хорошая функция.