Aide pour un Preg_replace

Signaler
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008
-
Messages postés
239
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
3 juin 2010
-
Bonjour,
    Je souhaite "colorier" un contenu particulié dans une balise, mais jusqu'ici mais mes tentatives ont été nulles ... lol
<hr size= "2" width="100%" />    J'essaye de faire en sorte que lorsque mon script analyse un code html, il met également en valeur le code CSS ou Javascript du code HTML. Mais le problème c'est que je n'arrive pas a limiter la mise en valeur

    Par exemple :
le code HTML suivant : "/* Commentaire non colorié */ <style> /* Commentaire colorié */ </style>"
devrait donner : "/* Commentaire non colorié */ <style>/* Commentaire colorié */</style>"
mais malheureusement il donne : "/* Commentaire non colorié */<style>/* Commentaire colorié */</style>"
<hr size ="2" width="100%" />J'utilise les preg_replace, mais je n'arrive pas à définir le pattern...
Pouvez vous m'aider ?

For every choice, a consequence (Fable)

2 réponses

Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

Une fonction que j'utilise:
    $masque[0] = "/(&lt;(META|meta)(.*)&gt;)/U";
    $masque[1] = "/(&lt;(TITLE|title)&gt;)/U";
    $masque[2] = "/(&lt;(\/TITLE|\/title)&gt;)/U";
    $masque[3] = "/(&lt;(STYLE|style)(.*)&gt;)/U";
    $masque[4] = "/(&lt;(\/STYLE|\/style)&gt;)/U";
    $masque[5] = "/(&lt;(LINK|link)(.*)&gt;)/U";
    $masque[6] = "/(&lt;(SCRIPT|script)(.*)&gt;)/U";
    $masque[7] = "/(&lt;(\/SCRIPT|\/script)&gt;)/U";
    $masque[8] = "/(&lt;(A|a) (.*)&gt;)/U";
    $masque[9] = "/(&lt;(\/A|\/a)&gt;)/U";
    $masque[10] = "/(&lt;(IMG|img)(.*)&gt;)/U";
    $masque[11] = "/(&lt;(HTML|html|\/HTML|\/html|HEAD|head|\/HEAD|\/head|BODY|body|\/BODY|\/body)(.*)&gt;)/U";
    $masque[12] = "/(&lt;(TABLE|table|\/TABLE|\/table|TR|tr|\/TR|\/tr|TD|td|\/TD|\/td)(.*)&gt;)/U";
    $masque[13] = "/(&lt;(DIV|div|\/DIV|\/div|SPAN|span|\/SPAN|\/span|FONT|font|\/FONT|\/font)(.*)&gt;)/U";
    $masque[14] = "/(&lt;(BR|br|B|b|\/B|\/b|I|i|\/I|\/i|U|u|\/U|\/u|CENTER|center|\/CENTER|\/center)&gt;)/U";
    $masque[15] = "/(&quot;(.*)&quot;)/U";
    $masque[16] = "/(&lt;(FORM|form|INPUT|input|\/FORM|\/form)(.*)&gt;)/U";
    $remplace[0] = "\\1";
    $remplace[1] = "\\1";
    $remplace[2] = "\\1";
    $remplace[3] = "\\1";
    $remplace[4] = "\\1";
    $remplace[5] = "\\1";
    $remplace[6] = "\\1";
    $remplace[7] = "\\1";
    $remplace[8] = "\\1";
    $remplace[9] = "\\1";
    $remplace[10] = "\\1";
    $remplace[11] = "\\1";
    $remplace[12] = "\\1";
    $remplace[13] = "\\1";
    $remplace[14] = "\\1";
    $remplace[15] = "\\1";
    $remplace[16] = "\\1";
    $txt = preg_replace($masque, $remplace, $txt);
j'espère qu'elle te sera utile.
Messages postés
239
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
3 juin 2010
1
Salut,

Ceci peut t'aider pour trouver le bon pattern:
http://www.phpcs.com/codes/COLORATION-HTML_39696.aspx
(voir fonction print_xhmtl() );

Si malgrés ça, tu n'y arrives pas. Fais nous en part.