Det er meget underligt, det ser ud som om preg_match_all kun finder det yderste sæt [kode]/[/kode] tags...
Ud over det, er der en måde man kan løse det på, men den er helt anderledes. Det du gør der er at du replacer [kode] med funktionen de skal behandles af og derefter evaluerer hele strengen. Eksempel på dette:
[code]
$string = '
123123aasdasd
[kode]
<?php
echo "OMG! its a code box";[/kode]
lalala
[kode]
echo "teeest";
function lol() {
doshit();
}[/kode]
';
$string = addslashes($string);
$string = str_replace("[kode]", "';\\n\\$geshi =& new geshi(\\"", $string);
$string = str_replace("[/kode]", "\\", $language);\\n\\$geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);\\n\\$string .= \\$geshi->parse_code() . '", $string);
eval('$string = \\'' . $string . '\\';');
echo nl2br(htmlentities($string));
Indlæg senest redigeret d. 16.06.2007 17:30 af Bruger #3884