julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 2008
-
3 oct. 2007 à 00:29
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 2008
-
5 oct. 2007 à 00:34
Bonjour,
Je souhaite réaliser en PHP un petit script qui me liste les fichiers C présent dans un répertoire et qui affiche le code présent dans ce répertoire sur ma fenetre.
Jusque la pas de probleme. Je souhaite cependant mettre dans une couleur différente les commentaires de ces codes sources.
J'ai donc dans mon css une nouvelle catégorie .comment.
Je cherche l'expression réguliere me permettant de remplacer les /* */ par /*...*/, et également les // de la même façon mais jusqu'a la fin de la ligne.
Auriez-vous une idée?
J'espere avoir été assez clair :)
Merci d'avance
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 5 oct. 2007 à 00:34
Ca y est, j'ai trouvé!!!
Non sans peine, mais ça à l'air de marcher convenablement. Ouf
Voila la solution qui semble fonctionner:
function parse_code($code)
{
$patterns = array('#(/[*].*?[*]/)#s', '#(//.*\n)#m');
return preg_replace($patterns, '\\1', $code);
}
Vive le C
Savon
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 5 oct. 2007 à 00:04
Salut,
Merci pour vos réponses.
>>DiGhan: Impeccable pour les commentaires de type /* */ sur plusieurs lignes, mais ne reconnait pas les commentaires //
Tu aurais une idée?
>>lesdis: Ne fonctionne pas, j'avais déja essayé quelques trucs du genre!
Vive le C
Savon
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ca à l'air de plutot bien marché por les commentaires //
Par contre j'ai un probleme pour les commentaires /* */ si j'en ai plusieurs dans le morceau de code à afficher.
Si j'ai plusieurs blocs /* */ il me passe tout à partir du premier /* jusqu'au dernier */ et ne voit pas les /* et */ intermédiaire.
J'ai par exemple le code suivant en entrée
/* test */
int main (void)
{
/*Return directly*/
return 0;
}
J'obtiens en sortie
/* test */