Xo:// html tag master

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 582 fois - Téléchargée 30 fois

Contenu du snippet

J'ai fait cette source pour récuperer le contenu d'un tag HTML ainsi que ses propriétés. Du style:

<BODY topmargin=0 leftmargin=0 bgcolor=#FFFFFF>
<IMG src=lala.jpg>
</BODY>

Ma fonction permet de récuperer, par exemple, les propriété de body et leurs valeurs(topmargin=0, leftmargin=0, bgcolor=#FFFFFF) ainsi que le contenu du tag(<IMG src=lala.jpg>)

la fonction s'utilise comme suivant:
get_tagint($html,$tag)

La fonction renvoie un tableau:
La premiere dimension contient un autre tableau avec toutes les propriétés et leurs valeurs
La deuxieme dimension contient le contenu du tag

Exemple:

$html = "
<BODY topmargin=0 leftmargin=0 bgcolor=#FFFFFF>
<IMG src=lala.jpg>
</BODY>
";
$myarray = array();
$myarray = get_tagint($html,"BODY");

$myarray[0][topmargin] sera egal a "0"
$myarray[0][leftmargin] sera egal a "0"
$myarray[0][bgcolor] sera egal a "#FFFFFF"
$myarray[1] contiendra "<IMG src=lala.jpg>"

Attention la casse du tag a son importance, ainsi dans lexemple ci dessus
get_tagint($html,"body") ne renvera rien

J'ai testé pour des tags dont la synthaxe est du style:
<TAG prop="lala"></TAG>
<TAG prop=lala></TAG>

Je crois que c'est tout ce que j'ai a préciser.

Si vous avez des améliorations, et il y en a a faire, dites le moi.

http://rflood.free.fr/index.php?path=pictures/html-master.jpg > le code en plus clair

Source / Exemple :


function get_tagint($str_base,$str_tag)
{		
	$wprop_name_start	= 1;		
	$ftag_end_pos		= $wprop_name_end = $wprop_equal = $wprop_value = $wprop_value_start = $wprop_value_end = $prop_value_quote = 0;	 
	$thiscar 			= $tag_int = $cprop_name = $cprop_value = $cprop_name_bu = "";			
	$properties			= array();
		
	$tag_startpos 		= strpos($str_base,"<$str_tag");
	$tag_endpos			= strpos($str_base,"</$str_tag>");
	
	# - CHERCHE CHAQUE PROPRIETE DU TAG - #
	for($i=(strlen($str_tag)+2);$i<($tag_endpos-$tag_startpos);$i++)
	{		
		$thiscar = substr($str_base,$tag_startpos+$i,1);		
		if($wprop_name_start==1 && $thiscar!=" " && $thiscar!="=" && $thiscar!=">")
		{			
			$cprop_name			.= $thiscar;	
			$wprop_name_start 	 = 0;	
			$wprop_name_end	 	 = 1;
		}
		elseif($wprop_name_start==1 && $thiscar==">")
		{	
			$wprop_name_start	= $wprop_name_end = $wprop_equal = $wprop_value_start = $wprop_value_end = $prop_value_quote = 0;
			$ftag_end_pos 		= $tag_startpos+$i;					
		}		
		elseif($wprop_name_end==1 && $thiscar!=" " && $thiscar!="=")
		{
			$cprop_name			.= $thiscar;	
		}
		elseif($wprop_name_end==1 && ($thiscar==" " || $thiscar=="="))
		{
			$wprop_name_end = 0;
			if($thiscar=="=") 		{ $wprop_value_start = 1; }
			$cprop_name_bu 					= $cprop_name;
			$properties[$cprop_name_bu] 	= "tg";			
			$cprop_name 					= "";
		}
		elseif($wprop_value_start==1 && $thiscar!=" ")
		{
			if($thiscar == "\"") 	{ $prop_value_quote=1; $wprop_value_start=0; $wprop_value_end=1; }
			else					{ $prop_value_quote=0; $wprop_value_start=0; $wprop_value_end=1; $cprop_value.="$thiscar"; }
		}
		elseif($wprop_value_end==1)
		{			
			if(($prop_value_quote==1 && $thiscar=="\"") || ($prop_value_quote==0 && $thiscar==" ")) 	{ $wprop_value_end=0; $prop_value_quote=0; $wprop_name_start=1; $properties[$cprop_name_bu]=$cprop_value; $cprop_value="";}
			else 																						{ $cprop_value.="$thiscar"; }
		}		
	}
		
	# - RECUPERE LE CONTENU DU TAG - #
	$tag_int 	= substr($str_base,$ftag_end_pos+1,$tag_endpos-($ftag_end_pos+1));	
	$result 	= array();
	$result[0] 	= $properties;
	$result[1] 	= $tag_int;
	
	return $result;
}

Conclusion :


lalala

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.