Traduction des styles mirc en code html/css

5/5 (4 avis)

Snippet vu 10 136 fois - Téléchargée 32 fois

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

Ajouter un commentaire Commentaires
fidelio974 Messages postés 26 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 28 août 2009
24 nov. 2009 à 10:29
salut sa sert a quoi ce code
Tarvos Messages postés 40 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 24 mars 2006
30 déc. 2005 à 22:33
En effet c'est plus simple avec des expressions régulières *________*
Tarvos Messages postés 40 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 24 mars 2006
16 mars 2005 à 21:25
Ben à vrai dire je l'ai codé avec ce que je savais faire... strpos et substr_replace me semblaient être les seules possibilités ^^'
J'attend donc ton code avec impatience :p
Bonne continuation à toi aussi ;)
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 6
15 mars 2005 à 15:27
Ca m'étonne de tomber sur une source comme celle ci !

Je ne commenterai pas le code, j'ai pas le niveau (me suis mis a php dimanche, soit ya ... 3 jours) mais j'ai fait la même chose en mirc scripting : coloration mirc -> html
Voici le lien si ca t'intéresse, ca me semble beaucoup moins long a coder avec des regex en mirc, je pense "traduire" cette source en php, je verrai si j'y arrive, je posterai ici je pense on pourra comparer =]
http://www.ircfr.com/code.aspx?ID=26522
Bonne continuation

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.