syntaxhighlighter et regex

Eléphant du PHP | 299 Messages

02 janv. 2012, 00:56

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!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 janv. 2012, 15:17

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 ;)


@+
Il en faut peu pour être heureux ......