Hej igen...
Ja tror vi starter med en gang kode:
include_once('geshi.php');
$string = '
123123aasdasd
[kode]
echo "OMG! its a code box";[/kode]
lålålå
[kode]
echo "teeest";
function lol() {
doshit();
}[/kode] lalalala
';
function codething($string) {
if(preg_match("/\\[kode\\](.+)\\[\\/kode\\]/s",$string, $results)) {
$source = $results[1];
echo $source."<br><hr>";
$language = 'php';
$geshi =& new GeSHi($source, $language);
$geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
$highlighted = $geshi->parse_code();
return $string = str_replace($source, $highlighted, $string);
}
}
Overstående script tager $string og udskriver alt mellem [kode][/kode] med syntax highlight og linie tal, og det virker sådan set fint... men da jeg som i det overstående kode valgte at prøve med 2 [kode] boxe skete det at den lavede ret meget lort i det
Kan ses her: www.oliemollen.dk/_temp/hangout/test.php
Problemet som jeg ser det er at den tager det første og sidste [kode] tag? istedet for at ta første, og så næste den møder?...
Nogen der har en smart ide/løsning på mit problem...
Indlæg senest redigeret d. 12.06.2007 17:00 af Bruger #1742