[PHP] Zamykanie otwartych tagów HTML
Malutka funkcja, która się przydaje, np.: przy skracaniu tekstu artykułu, newsa, itp., gdzie mogą wystąpić niezamknięte tagi.
1 |
<br/><?<br/>function close_tags($html){<br/> #umieszcza wszystkie otwarte tagi w tablicy<br/> preg_match_all("#<([a-z]+)( .*)?(?!/)>#iU",$html,$result);<br/> $openedtags=$result[1];<br/><br/> #umieszcza wszystkie zamknięte tagi w tablicy<br/> preg_match_all("#</([a-z]+)>#iU",$html,$result);<br/> $closedtags=$result[1];<br/> $len_opened = count($openedtags);<br/> # wszystkie tagi są zamknięte<br/> if(count($closedtags) == $len_opened){<br/> return $html;<br/> }<br/><br/> $openedtags = array_reverse($openedtags);<br/> # zamykanie tagów<br/> for($i=0;$i < $len_opened;$i++) {<br/> if (!in_array($openedtags[$i],$closedtags)){<br/> $html .= '</'.$openedtags[$i].'>';<br/> } else {<br/> unset($closedtags[array_search($openedtags[$i],$closedtags)]);<br/> }<br/> }<br/> return $html;<br/>}<br/>?> |