Colorisation syntaxique d'html

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 146 fois - Téléchargée 28 fois

Contenu du snippet

bonjour :)
j'avais déjà déposé une source sur la colorisation syntaxique de CSS (code.aspx?ID=30277) et je voulais faire la meme chose pour HTML :)
pis qui sait ? apres c++/java/javascript/perl etc ... hehe
j'ai surtout fait ca pour mon site, pour mettre des bouts de codes pour des cours, tuto, forum etc ...
merci de me dire les plus et les moins, ne critiquez pas trop ^^ lol je ne suis pas expert en expreg :) mais je trouvais la concept intéressant a partager

Source / Exemple :


function colorizeHTML($src)
{
	$patterns = array(
					  '#=(["|\'])([^"|\']*)(["|\'])#Smi',      // attributes & values
					  '#<!--([^-]+)-->#Smi',                   // comments
					  '#<([^\s^>]+)(.*?)>#Smi'                 // tags
					 );
				
	$replaces = array(
					  '[span class="html-schar"]=\\1/span[span class="html-attribut"]\\2/span[span class="html-schar"]\\3/span',
					  '[span class="html-cmt"]<!--\\1-->/span',
					  '[span class="html-tag"]<[b]\\1/b\\2>/span'
					 );
					 
	$src = preg_replace($patterns, $replaces, $src);
	$src = str_replace('[', '<', $src);
	$src = str_replace(']', '>', $src);
	
	return '<span class="html-norm">'.nl2br($src).'</span>';
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
j'ai réussi à gérer les doubles quotes et simples (j'en profite pour déterrer ça vu que je bosse sur un truc syntaxique en ce moment) en une seule regex. Je pense pas que ce soit parfait mais c'est déjà pas mal :

$code=preg_replace("'("(.+?)")|(\'(.+?)\')'",'$0',$code);
Messages postés
34
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
11 mai 2006

c'est bon j'ai modifie comme promit xD
par contre pour les doctypes c'est un peu particulier :p
vous prefere le voir comment ? en commentaire ou ... ? j'attend vos idees pour m'y mettre ;)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
" hightlight_file();"

> ce n'est valable que pour le php...

Dans le même genre : highlight_string()
Messages postés
34
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
11 mai 2006

lol desole j'avais de la famille a la maison et je ne pouvais pas donc pas ameliorer la source :p
pour gerer l'echapement des simples/doubles quotes j'ai une idee, je vois ca ce soir car la je dois aller en cours ^^ dsl lol je vous promet une update de la source dans qq jours au gros max :)
merci +
Messages postés
44
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 février 2006

hightlight_file();
Afficher les 14 commentaires

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.