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 :

Coloriser du code PHP [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de KOogar
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Par défaut Coloriser du code PHP
    Je voudrais coloriser du code contenu entre les balises php et franchement je n'arrive pas a voir mon erreur !!

    voila mon exemple, j'arrive a capturer la portion de code, a la coloriser, mais je n'arrive pas a la replacer dans la chaine d'origine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
      $chaine = '
      Bonjour,
      <br />
      &lt;?php echo "hello world"; ?>
      &nbsp;
      bye ';
     
     
      if (preg_match('/&lt;\?php(.*?)\?>/si' , $chaine, $capture))
      echo preg_replace('/&lt;\?php(.*?)\?>/si',highlight_string(html_entity_decode($capture[0])),$chaine);
     
    ?>
    ca n'affiche pas au bon endroit, le code php est colorisé mais il n'est pas a bon endroit

    <?php echo "hello world"; ?> Bonjour,
    1 bye

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    J'aurais fait comme ceci :
    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
     
    <?php
     
      $chaine = '
      Bonjour,
      <br />
      &lt;?php echo "hello world"; ?>
      &nbsp;
      bye ';
     
     
     $pattern = "¤&lt;\?php(.*?)\?>¤si";
     echo preg_replace($pattern, highlight_string(html_entity_decode($chaine)), "");
     
    ?>

  3. #3
    Membre averti Avatar de KOogar
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Par défaut
    merci mais c'est idem, il est mal placé, a l'affichage tu vois bien que le <br / > n'est pas interprété, regarde le source du code de ton exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <code><font color="#000000">
    <br />&nbsp;&nbsp;Bonjour,
    <br />&nbsp;&nbsp;&lt;br&nbsp;/&gt;
    <br />&nbsp;&nbsp;<font color="#0000CC">&lt;?php&nbsp;</font><font color="#006600">echo&nbsp;</font><font color="#CC0000">"hello&nbsp;world"</font><font color="#006600">;&nbsp;</font><font color="#0000CC">?&gt;
    <br /></font>&nbsp;&nbsp; 
    <br />&nbsp;&nbsp;bye&nbsp;</font>
    </code>
    La balise <code> est mal positionné, et je ne trouve pas pourquoi

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Avec le code que je t'ai mis tout est à sa place. Mais effectivement le BR n'est pas interprété

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    highlight_string affiche par défaut la version de la chaîne colorisée. Pour qu'elle soit retournée, il faut positionner son second paramètre à vrai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $chaine = '
    Bonjour,
    <br />
    &lt;?php echo "hello world"; ?>
    &nbsp;
    bye ';
     
    function cb_colorize($matches) {
        return highlight_string(html_entity_decode($matches[0]), TRUE);
    } 
     
    echo preg_replace_callback('/&lt;\?php.*?\?>/si', 'cb_colorize', $chaine);
    non

  6. #6
    Membre averti Avatar de KOogar
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Par défaut
    O merci pour le TRUE dans la fonction highlight_string et ta fonction

    mais ca ne fonctionne pas bien, avec une chaine encodé comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &lt;?php echo ' '.$r['cat'].' '; ?>
    les crochets [] ne passent pas, malgres la fonction html_entity_decode()

    la sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php echo ' ' .$r[ ' cat ' ] .' ';?>
    pourtant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    html_entity_decode("]")
    retour ]

    erf ca veut pas laisser les codes

    C'est la fonction callback qui rame ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Coloriser du code php en temps réel
    Par dad72 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 28/11/2009, 15h34
  2. Mettre un code php dans une variable...
    Par kedare dans le forum Langage
    Réponses: 6
    Dernier message: 19/09/2005, 12h55
  3. [Conception] Code php dans une base de donnée
    Par krfa1 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/09/2005, 10h58
  4. pb eval pour le code php dans une feuille xslt
    Par nipepsi dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 10/09/2004, 11h23

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