Aide pour un Preg_replace

audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008 - 1 oct. 2006 à 13:39
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 - 1 oct. 2006 à 20:29
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

cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
1 oct. 2006 à 15:00
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.
0
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 1
1 oct. 2006 à 20:29
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.
0
Rejoignez-nous