IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

regex par block


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut regex par block
    Bonjour, j'aimerais que ce bout de code est effet sur plusieur ligne comment puis-je faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = preg_replace('#(\[HTML\].*)class="(.*?)"(.*\[/HTML\])#', '$1 <SPAN CLASS="balisehtmltype">class</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    N'oublie pas le pouce vert

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Hello

    Utilise la balise [code].

    Utilise le modificateur pcre 'm' (pour multiline): http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

  3. #3
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Je sais que j'en demande beaucoup mais pourais tu me faire un exemple avec la ligne que j'ai mi dans l'enoncer stp
    N'oublie pas le pouce vert

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $texte = preg_replace('#(\[HTML\].*)class="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">class</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);

  5. #5
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Cela ne marche pas :s
    N'oublie pas le pouce vert

  6. #6
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Voici un peux plus de précision sur mon code

    $texte = '[html]
    <body>
    </body>
    [/html]';

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    // Je remplace les balises bb comprises entre des balises HTML
    $texte = preg_replace('#(\[HTML\].*)<h1>(.*?)</h1>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;h1&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h1&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<h2>(.*?)</h2>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;h2&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h2&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<h3>(.*?)</h3>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;h3&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h3&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<h4>(.*?)</h4>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;h4&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h4&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<h5>(.*?)</h5>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;h5&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h5&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<h6>(.*?)</h6>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;h6&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h6&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#(\[HTML\].*)(.*?)<br>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;br&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)(.*?)<br />(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;br /&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#(\[HTML\].*)<p>(.*?)</p>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;p&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/p&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<em>(.*?)</em>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;em&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/em&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<strong>(.*?)</strong>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;strong&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/strong&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<html>(.*?)</html>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;html&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/html&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<title>(.*?)</title>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;title&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/title&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<head>(.*?)</head>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;head&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/head&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<body>(.*?)</body>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;body&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/body&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<q>(.*?)</q>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;q&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/q&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#(\[HTML\].*)<a(.*?)>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;a</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<acronym(.*?)>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;acronym</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<html(.*?)>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;html</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<body(.*?)>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;body</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)>(.*?)</a>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/a&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)>(.*?)</acronym>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/acronym&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#(\[HTML\].*)<img(.*?)/>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;img</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">/&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<img(.*?)>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;img</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)<span(.*?)>(.*\[/HTML\])#m', '$1<SPAN CLASS="balisehtml">&lt;span</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#(\[HTML\].*)class="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">class</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)http-equiv="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">http-equiv</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)xmlns="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">xmlns</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)content="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">content</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)rel="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">rel</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)media="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">media</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)type="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">type</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)href="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">href</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)title="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">title</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)alt="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">alt</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)src="(.*?)"(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">src</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#(\[HTML\].*)target=(.*?)&nbsp(.*\[/HTML\])#m', '$1 <SPAN CLASS="balisehtmltype">target</SPAN>=<SPAN CLASS="balisehtmlnameautre">$2</SPAN>$3', $texte);
     
    // je supprime les balises HTML
    $texte = preg_replace('#\[HTML\](.*)\[/HTML\]#m','<br><span class="codetype">CODE HTML :</span><div class="code">$1</div>', $texte);
     
    echo $texte;
    ?>
    N'oublie pas le pouce vert

  7. #7
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    alors essaie le 'sm' ou change de pattern. Mets aussi les caractères '^' et '$' pour marquer le début ou la fin de chaine dans le pattern ou l'option 'm' n'aura aucun effet.

  8. #8
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    alors essaie le 'sm' ou change de pattern.
    que veut dire pattern ? stp

    et regarde un peu plus aux j'ai mi une pressision

    Citation Envoyé par Benjamin Delespierre Voir le message
    alors essaie le 'sm' ou change de pattern. Mets aussi les caractères '^' et '$' pour marquer le début ou la fin de chaine dans le pattern ou l'option 'm' n'aura aucun effet.
    C'est a dire redonne moi les pressision pour le meme exemple que tout a l'heure stp
    N'oublie pas le pouce vert

  9. #9
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $texte = preg_replace('#^(\[HTML\].*)class="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">class</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    Par exemple.

  10. #10
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Merci de ta reponse mais une derniere chose voici mon texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = '<<<@!1!@>>>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    // Je remplace les balises bb comprises entre des balises HTML
    $texte = preg_replace('#^(\[HTML\].*)<h1>(.*?)</h1>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;h1&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h1&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<h2>(.*?)</h2>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;h2&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h2&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<h3>(.*?)</h3>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;h3&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h3&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<h4>(.*?)</h4>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;h4&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h4&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<h5>(.*?)</h5>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;h5&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h5&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<h6>(.*?)</h6>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;h6&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/h6&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#^(\[HTML\].*)(.*?)<br>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;br&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)(.*?)<br />(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;br /&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#^(\[HTML\].*)<p>(.*?)</p>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;p&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/p&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<em>(.*?)</em>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;em&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/em&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<strong>(.*?)</strong>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;strong&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/strong&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<html>(.*?)</html>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;html&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/html&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<title>(.*?)</title>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;title&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/title&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<head>(.*?)</head>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;head&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/head&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<body>(.*?)</body>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;body&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/body&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<q>(.*?)</q>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;q&gt;</SPAN><SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/q&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#^(\[HTML\].*)<a(.*?)>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;a</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<acronym(.*?)>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;acronym</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<html(.*?)>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;html</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<body(.*?)>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;body</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)>(.*?)</a>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/a&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)>(.*?)</acronym>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtmltexte">$2</SPAN><SPAN CLASS="balisehtml">&lt;/acronym&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#^(\[HTML\].*)<img(.*?)/>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;img</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">/&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<img(.*?)>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;img</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)<span(.*?)>(.*\[/HTML\])$#sm', '$1<SPAN CLASS="balisehtml">&lt;span</SPAN>&nbsp;$2<SPAN CLASS="balisehtml">&gt;</SPAN>$3', $texte);
     
    $texte = preg_replace('#^(\[HTML\].*)class="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">class</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)http-equiv="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">http-equiv</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)xmlns="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">xmlns</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)content="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">content</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)rel="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">rel</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)media="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">media</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)type="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">type</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)href="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">href</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)title="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">title</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)alt="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">alt</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)src="(.*?)"(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">src</SPAN>=<SPAN CLASS="balisehtmlname">"$2"</SPAN>$3', $texte);
    $texte = preg_replace('#^(\[HTML\].*)target=(.*?)&nbsp(.*\[/HTML\])$#sm', '$1 <SPAN CLASS="balisehtmltype">target</SPAN>=<SPAN CLASS="balisehtmlnameautre">$2</SPAN>$3', $texte);
     
    // je supprime les balises HTML
    $texte = preg_replace('#^\[HTML\](.*)\[/HTML\]$#sm','<br><span class="codetype">CODE HTML :</span><div class="code">$1</div>', $texte);
     
    echo $texte;
    Mais rien ne s'affiche pourquoi ?
    N'oublie pas le pouce vert

  11. #11
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    J'arrive pas à comprendre ce que tu essaie de faire. Tu pourrais m'expliquer le but de ta mécanique ?

  12. #12
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    En faite ce que j’essaie de faire c'est que quand je met du code html entre les balise [html] et [/html] cela me reproduit exactement la même chose et le même couleur que si on l’écrivais dans notepad++

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
        <head>
            <title>Exemple d'utilisation de CSS externe</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
            <link rel="stylesheet" media="screen" type="text/css" title="Essai" href="essai.css" >
        </head>
        <body>
            <h1>Découverte du CSS</h1>
            <p>
                Bonjour !<br>
                Je suis une page XHTML <em>apparemment</em> banale, mais je sers en fait de test de fichier
                <acronym  title="Cascading Style Sheets">CSS</acronym> pour les tutoriels de
                <a href="http://www.monsite.com">Mon Site</a>
            </p>
            <h2>Ce n'est que du blabla</h2>
            <p>
                Comme l'a dit Neil Armstrong un certain 20 juillet 1969 : <q>C'est un petit pas pour l'Homme, un grand pas
                pour l'Humanité</q><br>
                J'aime la choucroute en conserve.<br>
                Vive les frites !
            </p>
            <p>
                Quoi, ça ne veut rien dire ce que j'écris ? On s'en fout, c'est pour tester notre fichier .css
            </p>
        </body>
    </html>
    et que cela m’affiche le texte ci-dessus avec les couleur de notepad++ sans que les balise s'exécute
    N'oublie pas le pouce vert

  13. #13
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je ne vois pas d'utilité particulière mais quelqu'un s'est déjà cassé la tête là dessus avant toi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    function xml_highlight($s)
    {       
        $s = htmlspecialchars($s);
        $s = preg_replace("#<([/]*?)(.*)([\s]*?)>#sU",
            "<font color=\"#0000FF\"><\\1\\2\\3></font>",$s);
        $s = preg_replace("#<([\?])(.*)([\?])>#sU",
            "<font color=\"#800000\"><\\1\\2\\3></font>",$s);
        $s = preg_replace("#<([^\s\?/=])(.*)([\[\s/]|>)#iU",
            "<<font color=\"#808000\">\\1\\2</font>\\3",$s);
        $s = preg_replace("#<([/])([^\s]*?)([\s\]]*?)>#iU",
            "<\\1<font color=\"#808000\">\\2</font>\\3>",$s);
        $s = preg_replace("#([^\s]*?)\=("|')(.*)("|')#isU",
            "<font color=\"#800080\">\\1</font>=<font color=\"#FF00FF\">\\2\\3\\4</font>",$s);
        $s = preg_replace("#<(.*)(\[)(.*)(\])>#isU",
            "<\\1<font color=\"#800080\">\\2\\3\\4</font>>",$s);
        return nl2br($s);
    }
     
    $a = <<<HTML
    <html>
      <head>
        <title>Titre</title>
      </head>
      <body>
        <?php echo "hello"; ?>
      </body>
    </html>
    HTML;
     
    echo highlight_string($a, true); // pour PHP (natif)
    echo xml_highlight($a); // pour XML

  14. #14
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Je ne vois pas d'utilité particulière mais quelqu'un s'est déjà cassé la tête là dessus avant toi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    function xml_highlight($s)
    {       
        $s = htmlspecialchars($s);
        $s = preg_replace("#<([/]*?)(.*)([\s]*?)>#sU",
            "<font color=\"#0000FF\"><\\1\\2\\3></font>",$s);
        $s = preg_replace("#<([\?])(.*)([\?])>#sU",
            "<font color=\"#800000\"><\\1\\2\\3></font>",$s);
        $s = preg_replace("#<([^\s\?/=])(.*)([\[\s/]|>)#iU",
            "<<font color=\"#808000\">\\1\\2</font>\\3",$s);
        $s = preg_replace("#<([/])([^\s]*?)([\s\]]*?)>#iU",
            "<\\1<font color=\"#808000\">\\2</font>\\3>",$s);
        $s = preg_replace("#([^\s]*?)\=("|')(.*)("|')#isU",
            "<font color=\"#800080\">\\1</font>=<font color=\"#FF00FF\">\\2\\3\\4</font>",$s);
        $s = preg_replace("#<(.*)(\[)(.*)(\])>#isU",
            "<\\1<font color=\"#800080\">\\2\\3\\4</font>>",$s);
        return nl2br($s);
    }
     
    $a = <<<HTML
    <html>
      <head>
        <title>Titre</title>
      </head>
      <body>
        <?php echo "hello"; ?>
      </body>
    </html>
    HTML;
     
    echo highlight_string($a, true); // pour PHP (natif)
    echo xml_highlight($a); // pour XML
    cela ne m'aide en rien a mon probleme mal heureusement
    N'oublie pas le pouce vert

  15. #15
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Sans être indiscret, c'est pour faire quoi au juste ? S'il ne s'agit que d'afficher de la coloration syntaxique tu pourrais juste renvoyer le document et l'ouvrir avec ton éditeur favori.

  16. #16
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Sans être indiscret, c'est pour faire quoi au juste ? S'il ne s'agit que d'afficher de la coloration syntaxique tu pourrais juste renvoyer le document et l'ouvrir avec ton éditeur favori.
    Faire le meme principe que les balise "code" pour poster un message sur se site mais moi je veut juste l'adapter
    N'oublie pas le pouce vert

  17. #17
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Ok, l'exemple que t'ai donné précédemment couvre la coloration PHP et XML (XHTML également).
    Je trouve que tu te casses trop la tête pour rien car il existe des scripts pour faire ça:
    - http://qbnz.com/highlighter/index.php
    - http://pear.php.net/package/Text_Highlighter/redirected
    - http://articles.sitepoint.com/articl...ource-code-php
    - http://pradador.com/code/lighterjs/

    Traditionnellement, on fait ça en JS et non en PHP.

  18. #18
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    tout est en anglais et moi et l'anglais sa fait deux pourais tu m'expliquer plus ?
    N'oublie pas le pouce vert

  19. #19
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut balise fin debut
    Salutation,

    voila je me creuse la tête depuis deux jours sans trouver une solution a mon problème
    Peut être pourriez vous m'aider ... c'est ce que l'on va voir

    Alors voila j'aimerais faire en sorte que a chaque fois que j'envoie un texte par la méthode post dans mon texte se rajoute a chaque début de ligne la balise [html] et a chaque fin de ligne [/html] voici un exemple pour vous éclairer :

    mon texte initial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
    <title>Exemple d\'utilisation de CSS externe</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
    <link rel="stylesheet" media="screen" type="text/css" title="Essai" href="essai.css" >
    </head>
    <body>
    <p>
    </p>
    <p>
    </p>
    </body>
    </html>
    et apres l'envoi cela donne ça :
    [html]<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >[/html]
    [html]<head>[/html]
    [html]<title>Exemple d\'utilisation de CSS externe</title>[/html]
    [html]<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >[/html]
    [html]<link rel="stylesheet" media="screen" type="text/css" title="Essai" href="essai.css" >[/html]
    [html]</head>[/html]
    [html]<body>[/html]
    [html]<p>[/html]
    [html]</p>[/html]
    [html]<p>[/html]
    [html]</p>[/html]
    [html]</body>[/html]
    [html]</html>[/html]
    comment puis-je faire ?
    N'oublie pas le pouce vert

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu es arrivé a quoi pendant ces deux jours de reflexion ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Regex : remplacer une regex par une variable
    Par Julipp dans le forum Général Python
    Réponses: 5
    Dernier message: 07/04/2013, 15h03
  2. Décrypter RIJNDAEL_128 par block
    Par cid007300 dans le forum Langage
    Réponses: 1
    Dernier message: 20/02/2013, 17h43
  3. [RegEx] supprimer <a href...</a> par regex dans pages html.
    Par moldak dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2012, 16h02
  4. [SP-2010] Affichage des colonnes par block
    Par bdptaki dans le forum SharePoint
    Réponses: 3
    Dernier message: 24/10/2011, 15h47
  5. [RegEx] regex par block
    Par sourcilpower dans le forum Langage
    Réponses: 14
    Dernier message: 28/02/2011, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo