begin process at 2012 05 27 22:21:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > COLORISATION HTML DES LOGS IRC

COLORISATION HTML DES LOGS IRC


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Niveau :Débutant Date de création :28/03/2005 Vu :2 776

Auteur : joker888

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Salut a tous, une autre de mes sources que j'ai mis en ligne, un colorisateur HTML des logs IRC.
En gros, vous faites un C/C de vos textes (avec les codes irc => caracteres chr(2) pour le gras et tout) et ca vous ressort un code HTML.

Pour utiliser la fonction :

echo irc2html(MON_LOG_IRC);

Source

  • function chooseColor($irc){
  • switch($irc){
  • case "0":$color=rgb2html(array(255, 255, 255));break;
  • case "1":$color=rgb2html(array(0, 0, 0));break;
  • case "2":$color=rgb2html(array(0, 0, 127));break;
  • case "3":$color=rgb2html(array(0, 127, 0));break;
  • case "4":$color=rgb2html(array(255, 0, 0));break;
  • case "5":$color=rgb2html(array(127, 0, 0));break;
  • case "6":$color=rgb2html(array(127, 0, 127));break;
  • case "7":$color=rgb2html(array(255, 127, 0));break;
  • case "8":$color=rgb2html(array(255, 255, 0));break;
  • case "9":$color=rgb2html(array(0, 255, 0));break;
  • case "10":$color=rgb2html(array(63, 127, 127));break;
  • case "11":$color=rgb2html(array(0, 255, 255));break;
  • case "12":$color=rgb2html(array(0, 0, 255));break;
  • case "13":$color=rgb2html(array(255, 0, 255));break;
  • case "14":$color=rgb2html(array(127, 127, 127));break;
  • case "15":$color=rgb2html(array(191, 191, 191));break;
  • default:$color=rgb2html(array(0, 0, 0));break;
  • }
  • return $color;
  • }
  • function irc2html($texte){
  • $buffer='<div class="irc"><h6>IRC : </h6>';
  • $is_bold=false;
  • $is_under=false;
  • $is_fg=false;
  • $is_bg=false;
  • $is_space=false;
  • $fg=1;
  • $bg=0;
  • for($i=0;$i<strlen($texte);$i++){
  • $chr = substr($texte,$i,1);
  • $ord = ord($chr);
  • switch($ord){
  • case "10":
  • //->Retour à la ligne, fermer toutes les balises ouvertes
  • if($is_bold) {$buffer.= "</b>";$is_bold=false;}
  • if($is_under) {$buffer.= "</u>";$is_under=false;}
  • if($is_fg) {$buffer.= "</span>";$is_fg=false;}
  • if($is_bg) {$buffer.= "</span>";$is_bg=false;}
  • $is_space=false;
  • //$buffer.= "<br>";
  • break;
  • case "2":
  • //->Mettre en gras
  • if($is_bold) {$buffer.= "</b>";$is_bold=false;}
  • else {$buffer.= "<b>";$is_bold=true;}
  • break;
  • case "3":
  • //->Mettre en couleur
  • $fg1="";$fg2="";$bg1="";$bg2="";
  • $i++;$chr = substr($texte,$i,1);
  • if(ereg("[0-9]",$chr)){
  • $fg1=$chr;$i++;
  • $chr=substr($texte,$i,1);
  • if(ereg("[0-9]",$chr)){
  • $fg2=$chr;$i++;$chr=substr($texte,$i,1);
  • }
  • if($chr==","){
  • $i++;$chr = substr($texte,$i,1);
  • if(ereg("[0-9]",$chr)){
  • $bg1 = $chr;$i++;
  • $chr = substr($texte,$i,1);
  • if(ereg("[0-9]",$chr)){
  • $bg2=$chr;
  • }
  • else{
  • $i--;
  • }
  • }
  • }
  • else{
  • $i--;
  • }
  • }
  • $fg=($fg1.$fg2)+0;
  • $bg=($bg1.$bg2)+0;
  • //echo "<b>[C : ".$fg." / ".$bg."]</b>";
  • if($is_fg){$buffer.= "</span>";$is_fg=false;}
  • if($fg!=0) {$buffer.= "<span style='color:".chooseColor($fg).";'>";$is_fg=true;}
  • if($is_bg){$buffer.= "</span>";$is_bg=false;}
  • if($bg!=0) {$buffer.= "<span style='background-color:".chooseColor($bg).";'>";$is_bg=true;}
  • break;
  • case "15":
  • //->Enlever les couleurs
  • if($is_fg) {$buffer.= "</span>";$is_fg=false;}
  • if($is_bg) {$buffer.= "</span>";$is_bg=false;}
  • if($is_bold) {$buffer.= "</b>";$is_bold=false;}
  • if($is_under) {$buffer.= "</u>";$is_under=false;}
  • break;
  • case "22":
  • //->Inverser BG et FG
  • if($is_fg) {$buffer.= "</span>";$is_fg=false;}
  • if($is_bg) {$buffer.= "</span>";$is_bg=false;}
  • $temp=$fg;
  • $fg=$bg;
  • $bg=$temp;
  • $buffer.= "<span style='color:".chooseColor($fg).";'>";$is_fg=true;
  • $buffer.= "<span style='background-color:".chooseColor($bg).";'>";$is_bg=true;
  • break;
  • case "31":
  • //->Souligner
  • if($is_under) {$buffer.= "</u>";$is_under=false;}
  • else {$buffer.= "<u>";$is_under=true;}
  • break;
  • case "32":
  • //->Espace
  • if($is_space) {$buffer.= "&nbsp;";$is_space=false;}
  • else {$buffer.=" ";$is_space=true;}
  • break;
  • default:
  • //->Chr normal, afficher
  • $buffer.= $chr;
  • break;
  • }
  • }
  • $buffer.='</div>';
  • return $buffer;
  • }
function chooseColor($irc){
	switch($irc){
		case "0":$color=rgb2html(array(255, 255, 255));break;
		case "1":$color=rgb2html(array(0, 0, 0));break;
		case "2":$color=rgb2html(array(0, 0, 127));break;
		case "3":$color=rgb2html(array(0, 127, 0));break;
		case "4":$color=rgb2html(array(255, 0, 0));break;
		case "5":$color=rgb2html(array(127, 0, 0));break;
		case "6":$color=rgb2html(array(127, 0, 127));break;
		case "7":$color=rgb2html(array(255, 127, 0));break;
		case "8":$color=rgb2html(array(255, 255, 0));break;
		case "9":$color=rgb2html(array(0, 255, 0));break;
		case "10":$color=rgb2html(array(63, 127, 127));break;
		case "11":$color=rgb2html(array(0, 255, 255));break;
		case "12":$color=rgb2html(array(0, 0, 255));break;
		case "13":$color=rgb2html(array(255, 0, 255));break;
		case "14":$color=rgb2html(array(127, 127, 127));break;
		case "15":$color=rgb2html(array(191, 191, 191));break;
		default:$color=rgb2html(array(0, 0, 0));break;
	}
	return $color;
}

function irc2html($texte){	
	$buffer='<div class="irc"><h6>IRC : </h6>';
		
	$is_bold=false;
	$is_under=false;
	$is_fg=false;
	$is_bg=false;
	$is_space=false;
	
	$fg=1;
	$bg=0;
	for($i=0;$i<strlen($texte);$i++){
		$chr = substr($texte,$i,1);
		$ord = ord($chr);
		
		switch($ord){
			case "10":
				//->Retour à la ligne, fermer toutes les balises ouvertes
				if($is_bold) {$buffer.= "</b>";$is_bold=false;}
				if($is_under) {$buffer.= "</u>";$is_under=false;}
				if($is_fg) {$buffer.= "</span>";$is_fg=false;}
				if($is_bg) {$buffer.= "</span>";$is_bg=false;}
				$is_space=false;
				//$buffer.= "<br>";
				break;
				
			case "2":
				//->Mettre en gras
				if($is_bold) {$buffer.= "</b>";$is_bold=false;}
				else {$buffer.= "<b>";$is_bold=true;}
				
				break;
				
			case "3":
				//->Mettre en couleur
				$fg1="";$fg2="";$bg1="";$bg2="";
				$i++;$chr = substr($texte,$i,1);
				if(ereg("[0-9]",$chr)){
					$fg1=$chr;$i++;
					$chr=substr($texte,$i,1);
					if(ereg("[0-9]",$chr)){
						$fg2=$chr;$i++;$chr=substr($texte,$i,1);
					}
	
					if($chr==","){
						$i++;$chr = substr($texte,$i,1);
						if(ereg("[0-9]",$chr)){
							$bg1 = $chr;$i++;
							$chr = substr($texte,$i,1);
							if(ereg("[0-9]",$chr)){
								$bg2=$chr;
							}
							else{
								$i--;
							}
						}
					}
					else{
						$i--;
					}	
				}
				$fg=($fg1.$fg2)+0;
				$bg=($bg1.$bg2)+0;
				//echo "<b>[C : ".$fg." / ".$bg."]</b>";
				if($is_fg){$buffer.= "</span>";$is_fg=false;}
				if($fg!=0) {$buffer.= "<span style='color:".chooseColor($fg).";'>";$is_fg=true;}
				
				if($is_bg){$buffer.= "</span>";$is_bg=false;}
				if($bg!=0) {$buffer.= "<span style='background-color:".chooseColor($bg).";'>";$is_bg=true;}
				
				break;
				
			case "15":
				//->Enlever les couleurs
				if($is_fg) {$buffer.= "</span>";$is_fg=false;}
				if($is_bg) {$buffer.= "</span>";$is_bg=false;}
				if($is_bold) {$buffer.= "</b>";$is_bold=false;}
				if($is_under) {$buffer.= "</u>";$is_under=false;}
				break;
				
			case "22":
				//->Inverser BG et FG
				if($is_fg) {$buffer.= "</span>";$is_fg=false;}
				if($is_bg) {$buffer.= "</span>";$is_bg=false;}
				
				$temp=$fg;
				$fg=$bg;
				$bg=$temp;
				
				$buffer.= "<span style='color:".chooseColor($fg).";'>";$is_fg=true;
				$buffer.= "<span style='background-color:".chooseColor($bg).";'>";$is_bg=true;
			
				break;
				
			case "31":
				//->Souligner
				if($is_under) {$buffer.= "</u>";$is_under=false;}
				else {$buffer.= "<u>";$is_under=true;}
				break;
			case "32":
				//->Espace
				if($is_space) {$buffer.= "&nbsp;";$is_space=false;}
				else {$buffer.=" ";$is_space=true;}
				break;
			default:
				//->Chr normal, afficher
				$buffer.= $chr;
				break;
		}
	}
	$buffer.='</div>';
	return $buffer;
}

 Conclusion

J'ai mis en débutant car il n'y a pas de fonctions complexe, juste une boucle géante...
Voila :) à plus!


 Sources du même auteur

Source avec Zip Source avec une capture SCRIPT DE GESTION DE SONDAGES.
CLASS POUR MYSQL...

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

Commentaires et avis

Commentaire de stepibou le 29/03/2005 12:15:40

hello joker888,
bonne source effectivement, ;) (j'ai pas testé mais ca doit marcher)
pour les debutants qui ont quand meme 2, 3 connaissances,
car pour un debutant total ca manque un peu de commentaire :
genre : ord est une fct inverse de chr, qui retourne la valeur asci du caractere.
pour continuer l'apprentissage, on peut voir comment dimnuer le
nombre de ligne de ta premiere fonction :

function chooseColor($irc){
    $tableau_rouge = array(255, 0, 0, 0, 255, 127,...);
    $tableau_vert = array(255, 0, 0, 127, 0,  0,...);
    $tableau_rouge = array(255, 0, 127, 0, 0, 0,...);
    $rgb = array();
    for( $i=0; $i<16; $i++) {
        $rgb[$i] = array($tableau_rouge[$i], $tableau_vert[$i], $tableau_rouge[$i]);
        switch($irc){  // on met le switch dans la boucle for, et pas l'inverse, sinon pb
        case "$i": $color = rgb2html($rgb[$i]); break;
        }
    }
    switch($irc){
    default:$color=rgb2html(array(0, 0, 0));break;
    }
    return $color;
}

non testé elle aussi, mais bon ca doit marcher.

voila donc encore bonne source, a+

Commentaire de joker888 le 29/03/2005 13:57:19

En effet, je n'ai pas beaucoup commenté cette source, des que j'ai un peu de temps je m'en charge.

sinon ta fonction choosecolor, je ne l'ai pas testé, ca doit suremeznt fonctionner, mais je ne connaissais pas du tout le case '$i', de rendre dynamique ce genre de chose, je test ca, pareil, quand j'ai le temps, et encore merci :)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales