Expreg [Résolu]

Signaler
Messages postés
34
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
11 mai 2006
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour :)

J'ai un petit de expreg ...

Je suis en train de faire un colorisateur syntaxique de css avec des expreg et y a juste un tout petit truc qui me tue

En css on a des commentaires (comments) Mon script colorize les types de comment suivant

1.

/* cmt */

ok

2.

/*********/

/*** cm ***/

/*********/

ok

3.

/*

cmt

*/

no ok



et j'aimerai qu'il prenne en compte le dernier commentaire sinon ca fait pas beau = )



Voici mon script :

$css étant le code css (...!)



<?php



$patterns = array(



'#(:)(.*?)(;)#',
// values



'#^([[:alnum:].:*,\#<>\[\]()\|\'"=+-]+[\s]+)#Smi', //
balises



'#(/\*.*?[\n]*?\*/)#Smi',
// comments



'#(,|;)#'
// ,;

);



$replaces = array(



':\\2;',
// values



'\\1',
// balises



' \\1 ',
// comments



'\\1',
// ;

);



$css = preg_replace($patterns, $replaces, $css);



$css = ''.$css.'';



echo '
'."\n\n".nl2br($css)."\n\n".'
';



?>



Merci de m'aider :)

La syntaxique pour les cmts est :

'#(/\*.*?[\n]*?\*/)#Smi'



La source est dispo mon tit site perso (pas mon gros site ^^) :

http://hywan.firegates.net/vscripts.php?s=css&d=Colorize/&t=php&lang=fr

Si qq'un veut la réutiliser qu'il me fasse signe merci
A voir également:

7 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Clique sur "réponse acceptée stp" merci :-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



remplaces ça (/\*.*?[\n]*?\*/)




par ça :



(/\*\.\*\?\*\?\*/)




Ca fonctionne ou pas ?



a ++ ;-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
34
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
11 mai 2006

no lol ca marche moins bien qu'avant =) lol
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
salut



'#(/\*.*?\n.*?\*/)#Smi',
// comments





et comme ceci...



In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
34
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
11 mai 2006

no lol tjrs pas =)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
On peut déjà enlever le \n vu que le #sim (ou Smi ici) compte aussi les expressions sur plusieurs lignes...



Bon je viens de tester chez moi ça fonctionne parfaitement :



$texte=preg_replace("'(/\*(.+?)\*/)'sim",'$1',$texte);


a ++
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
34
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
11 mai 2006

ah lalala pk j'y ai pas penser :s

et petite précision #Smi ou #smi c'est pas tout a faire pareil ;o)

merci beaucoup :)

+