Page 1 sur 1

syntaxhighlighter et regex

Posté : 02 janv. 2012, 00:56
par graffx
salut a tous et bonne année!

voila, petit souci de regex, j' utilise la synthaxe pour colorer mes codes, mais au niveau de mon bbcode, ca bloque.

réellement dans ma base de données j' ai ceci

*description*
[ code ]
mon code php
[ / code ]

Voici ma regex que je n' arrive pas a adapter:
$texte = preg_replace('`\[code\](.+)\[/code\]`isU', '<pre class="brush: php">
              function helloSyntaxHighlighter() 
              { $1 } 
              </pre>', $texte); 

Je trouve cette fonction assez bizarre car elle passe dans le html d'aprés l' exemple du script:
<pre class="brush: php">
              function helloSyntaxHighlighter() 
              { 
               return 'hey!'
              } 
              </pre>

Le probleme est (je comprend pas d'ailleurs), que la partie qui apparait dans un tableau et en coloré est la partie du debut jusqu' aux pointillés:
<pre class="brush: php">
              function helloSyntaxHighlighter() 
              { 
<?php 
session_start();

	  if(!isset($_SESSION['name'])) //--Si il n' y a pas de session (si on n' est pas connecté)
	  {
	  //--On affiche le formulaire de connection
	  echo '
      <table width="650" border="0" align="center" cellpadding="0" cellspacing="0">
---------------------------------------------------------------------------
        <tr>
          <td height="30" align="center" valign="middle">
          <form method="post" action="tt.php">
            Pseudo :
            <input name="pseudo" type="text" id="pseudo" style="width: 70px;" />
            Mot de passe :
            <input name="mdp" type="password" id="mdp" style="width: 70px;" />
            <input type="submit" name="submit" id="submit" value="OK" />
            <a href="fpass.php" class="header">Mot de passe oubli&eacute;</a>

            <a href="reg.php" class="header">Inscription</a>
          </form>
          </td>
        </tr>
      </table>';
	  }
	  else
	  {
	  //--Sinon (on est connecté) on affiche les infos et commande du membre (nom, lien profil, lien deconnection)
      echo '<table width="650" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td height="30" align="center" valign="middle">
              Bonjour, '.$_SESSION['name'].' <a href="profil.php" class="header">Mon compte</a> <a href="deco.php" class="header">D&eacute;connection</a>

            </td>
          </tr>
      </table>';
	  }
?>
	  
 } 
Si quelqu' un pouvait me sortir du petrin, je lui en serait extremement reconnaissant. (et une explication pour la derniere partie si possible, pour la poartie colorée jusqu' aux pointillés)


Merci bonne année!

Re: syntaxhighlighter et regex

Posté : 02 janv. 2012, 15:17
par moogli
salut,

Si la colorisation est faite en JavaScript il faut l'indiquer (<script .....> ... </script>).
Si c'est en php utilise preg_replace_callbackpreg_replace_callback au lieux de preg_replace ;)


@+