Traduction des styles mirc en code html/css

Contenu du snippet

Une fonction PHP permettant de traduire les styles mIRC (le gras [^b], le souligné [^u], le reverse [^r] et les couleurs [^k]) en code html/css (balises <b>, <u> et <span style="color:[couleurtexte];background-color:[couleurfond];">).

Source / Exemple :


<?php
function mircstyles ($text) {
	$bold = '';
	$underline = '';
	$reverse = '';
	$color = '';

	function colors($masque) {
		$colors = array(
			'white',
			'black',
			'#000066',
			'#006600',
			'red',
			'#660000',
			'#9900FF',
			'orange',
			'yellow',
			'green',
			'#6699CC',
			'#99CCFF',
			'blue',
			'purple',
			'darkgray',
			'gray');

		$return = '<span style="color:'.$colors[$masque[1]].';';
		if ($masque[2]) { $return .= 'background-color:'.$colors[$masque[3]].';'; }
		$return .= '">'.$masque[4].'</span>';
		
		return $return;
	}

	$expreg = array(
		'/'.$bold.'([^'.$bold.']*)['.$bold.']?/',
		'/'.$underline.'([^'.$underline.']*)['.$underline.']?/',
		'/'.$reverse.'([^'.$reverse.']*)['.$reverse.']?/');

	$replace = array(
		'<b>$1</b>',
		'<u>$1</u>',
		'<span style="background-color:black;color:white;">$1</span>',);

	$array = explode("\n\r", $text);
	foreach ($array as $element) {
		$string = preg_replace($expreg, $replace, $element);
		$string = preg_replace_callback("/$color([0-9]{1,2})([,]([0-9]{1,2}))?([^$color]*)([$color][^0-9])?/","colors",$string);

		$strings[] = $string;
	}

	return implode("<br />", $strings);
}
?>

Conclusion :


La traduction des couleurs peut-être modifié dans l'array $colors (les couleurs sont dans le même ordre que sous mIRC, 0-15).

Cette fonction adopte le même comportement que mIRC face à la syntaxe des styles, normalement.

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.