Pobieram dane z bazy i dostaje je w postaci:
$zmienna = 'jakiś tekst <pre lang="php" line="1">php php php</pre> znów jakiś nowy tekst <pre lang="sql">sql sql sql</pre>';
i teraz chcę zaimplementować GeSHi aby kolorował mi owy tekst, próbowałem w ten sposób:
include ('geshi/geshi.php'); $zmienna = 'tekst tekst <pre lang="php" line="1">phptekst phptekst</pre> tekst2 tekst2 <pre lang="sql">sqltekst sqltekst</pre> tekst3 tekst3'; preg_match_all("/<pre(?:lang=[\"']([\w-]*)[\"']|line=[\"'](\d*)[\"']|\s)+>(.*)<\/pre>\s*/siU", $zmienna, $a); $geshi = new GeSHi($a[3][0], $a[1][0]); echo preg_replace("/<pre(?:lang=[\"']([\w-]*)[\"']|line=[\"'](\d*)[\"']|\s)+>(.*)<\/pre>\s*/siU", $geshi->parse_code();, $zmienna);
tylko że jak będę miał n rożnych kodów, skrypt zamieni mi n na jednakowe kody (inaczej nie da rady bo w tablicy $a podałem phptekst phptekst)
W jaki dobry sposób rozwiązać ten problem, siedzę już chwilę nad tym i jakoś nie mogę nic nadzwyczajnego wymyślić.