Se connecter avec
S'enregistrer | Connectez-vous

probleme colorisation syntaxique

Dernière réponse : dans Programmation

Salut à tous voila j'ai un petit probleme. En faite je veux que losrque je met ce bbcode
  1.  
le text entre soit colorisé j'ai donc fait une regex
la voici:
$news = preg_replace('#\[code\](.*?)\[/code\]#si','<div id ="code">$1</div>', highlight_string($news,true));
(l'id code c'est pour mettre dans un cadre).
Cela s'affiche bien en couleur comme je veux mais les carracter speciaux ne sont plus interpreté quelqu'un voit pourquoi????
merci.
Lassé par la pub ? Créez un compte

bha justement ca marche pas par exemple si $news prend cette valeur:
[code=php]
<?
$link = mysql_connect('host','user','pass');
?>
il va afficher
<?
$link = mysql_connect("host","user","pass");
?>
j'ai modifier encore ma regex la voici:
$replace22 = html_entity_decode("$1");
$news = preg_replace('#\[code=php\](.*?)\[/code\]#sie',"'<div id=\"code\">'.highlight_string('$replace22',true).'</div>'", $news);

Citation :

Zer0 a écrit :
bha justement ca marche pas par exemple si $news prend cette valeur:
[code=php]
<?
$link = mysql_connect('host','user','pass');
?>
il va afficher
<?
$link = mysql_connect("host","user","pass");
?>
j'ai modifier encore ma regex la voici:
$replace22 = html_entity_decode("$1");
$news = preg_replace('#\[code=php\](.*?)\[/code\]#sie',"'<div id=\"code\">'.highlight_string('$replace22',true).'</div>'", $news);


essaye ça

$news = preg_replace("/\[code=php\](.*)\[\/code]/i", highlight_string($1, true), $outmessage);

deja il va chier une erreur T_LNUMBER a cause de $1 faut toujours le mettre entre '' ou "" et
$news = preg_replace("/\[code=php\](.*)\[\/code]/i", highlight_string("$1", true), $outmessage);
ca marche pas non plus j'ai un proble de htmlentities

Citation :

Zer0 a écrit :
deja il va chier une erreur T_LNUMBER a cause de $1 faut toujours le mettre entre '' ou "" et
$news = preg_replace("/\[code=php\](.*)\[\/code]/i", highlight_string("$1", true), $outmessage);
ca marche pas non plus j'ai un proble de htmlentities


j'aimerais bien voir jouer ça ...

bon j'ai trouvé une solution.
J'ai suprimer le htmlentities losrque j'ajouter le texte dans ma base de donnée et je l'ai replacé par ca:
$data = strtr($data,array("'" => ''',"\"" => '"');
Lorsque j'affiche je fait le contraire ce qui me donne la regex suivante:
$news = preg_replace('#\[code=php\](.*?)\[/code\]#sie',"'<div id=\"code\">'.highlight_string(strtr('$1', array('"' => '\"','$#039;' => '\'')),true).'</div>'", $outmessage);

voila ca peut aider quelqu'un ca marche très bien.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde