Bonjour,
Je poste ce message car je galère pas mal sur un problème assez génant, et j'avoue que pour une fois, je sèche complètement.
Enfaite je suis entrain de coder un BBCode pour la colorisation synthaxique de Java, en utilisant la libraire geshi.
Jusqu'à la, tout va bien, et j'ai réussi à regler quelques petits problèmes sans trop de difficultés. Mais je me suis aperçu que si il y a plusieurs codes Java, le premier est affiché partout à la place des autres.
J'explique comment je procède actuellement. Je récupere le code java contenu entre les balises BBCode de cette façon :
Ensuite je manipule la variable $java[1] contenant le code (je suppose que si il y a plusieurs codes java sur la meme pages, ils sont contenus dans $java[2], $java[3] et ainsi de suite non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part preg_match("/\[java\](.*?)\[\/java\]/is", $texte, $java);
Puis une fois que j'ai finis les manips sur le code, j'obtiens une variable contenant le code sortie par Geshi, c'est à dire avec la colorisation synthaxique.
Puis j'effectue un :
Il est donc logique que tous les contenus entre toutes les balises BBCode java de la variable $texte seront remplacée par la même valeur, celle du code de la première utilisation de la balise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part texte = preg_replace("/\[java\](.*?)\[\/java\]/is", "".$jv."", $texte);
Mais voilà, j'ai essaié plusieurs trucs, mais je vois pas trop comment faire pour manipuler individuellement on peut dire, chaque balise [java], et les remplacer par le propres contenus formatés, qui sont tous différents des autres.
Merci d'avance pour votre précieuse aide .
Partager