Aller au contenu

Sujets conseillés

Posté

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:

$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

Posté

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".

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...