Return to Snippet

Revision: 52037
at October 11, 2011 22:23 by bavithra


Initial Code
function closetags ( $html )
    {
		 $html = strrpos ( $html, "<" ) > strrpos ( $html, ">" ) ? rtrim ( substr ( $html, 0, strrpos ( $html, "<" ) ) )  : rtrim ( $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;
    }
     
	$snippet = "<div>This is some interesting <strong><em>content!";
	
     $x = closetags ( $snippet );
   
     print htmlspecialchars ( $x );

Initial URL
http://snipplr.com/view/3618/close-tags-in-a-htmlsnippet/

Initial Description


Initial Title
Code to close any HTML tags that are not-closed in a string

Initial Tags


Initial Language
PHP