Siedzialem juz dosyc dlugo i nie mam pomyslu, a rozwiazanie najprawdopodobniej jest proste...
[php:1:df22820218]<?php
//tutaj moj kod ktory chce przeszukac w poszukiwaniu znacznikow [kod] [/kod]
$code='[cokolwiek przed][kod] echo("a"); [/kod][cokolwiek po][kod] $b=$a+$b; [/kod]';
// fragment wyszukujacy znaczniki i wykonujacy funkcje 'kod' na fragmencie pomiedzy znacznikami
echo(preg_replace("[/kod]!U",kod('$2'),$code));
?>[/php:1:df22820218]
Funkcja w pierwszej postaci, zwracajaca bzdurny wynik:
[cokolwiek przed]
<? $2 ?>
[cokolwiek po]
<? $2 ?>
[php:1:df22820218]<?php
function kod($kod)
{
$kod="<br />".highlight_string("<? $kod ?>",1)."<br />";
return($kod);
}
?>[/php:1:df22820218]
funkcja w drugiej postaci:
[php:1:df22820218]<?php
function kod($kod)
{
$kod="<br />".highlight_string("$kod",1)."<br />";
return($kod);
}
?>[/php:1:df22820218]
Druga funkcja (usunalem w niej znaczniki <? i ?>) wyswietla $2 tak jak powinna:
[cokolwiek przed]
<? echo("a"); ?>
[cokolwiek po]
<? $b=$a+$b; ?>
... ale za to nie koloruje. Nie wiem jak temu zaradzic, skonczyly mi sie pomysly...