Version complète: sur le forum Webmaster Hub : Expression régulière et code
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
crocxx
Bonjours,
J'ai un petit problème pour un expression régulière, peu être que quelqu'un peu m'aider.

J'ai dans ma base de donnée des articles formaté avec un syntaxe proche du BBCode, donc les codes sources dans mes articles sont dans les balises [code ][ /code].

Avec un petite expression j'ai essayer d'appeler un fonction de coloration syntaxique pour tous les codes:

CODE
$chaine = ereg_replace("\[code\] ?([^\[]*) ?\[/code\]", '<pre><code>'.BBcode('\\1').'</code></pre>', $chaine);


A ce que j'ai pu voir cela ne fonctionne pas, l'expression régulier execute bien ma fonction, mais avec \\1 en paramétre, pour le remplacer une fois executer (donc mon code s'affiche bien, mais pas coloré).

Quelqu'un aurai il une solution?

Merci d'avance
Kioob
Hello,

utilises preg_replace_callback() à la place (surtout que ereg_replace est déconseillée au moins depuis PHP 4, et disparaitra de PHP 6).

Mais même comme ça, j'aurais tendance à procéder en deux étapes pour éviter des remplacements "en boucle".
crocxx
Merci, c'est impeccable, j'ai réglé mon problème wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.