Gå til innhold

Hvordan bruke highlight_string i [code][/code]?


Anbefalte innlegg

Som emnetittel sier: hvordan kan jeg bruke highlight_string hvis man har skrevet [*code]En kode[/code*]?

 

bbKoden for kode som jeg har:

$Text = preg_replace("(\[code\](.+?)\[/code\])is", '</span><div class="codebody"><div class="code">$1</div></div><span class="content">', $Text);

 

Altså der det står $1..det er den teksten som skulle ha vært "fargelagt"..har prøvd wordpwap(highlight_string($str)); og highlight_string(wordwrap($str)); på hele outputen, men det ble bare tull...altså teksten ble rett og slett ødelagt hvis dere skjønner...uansett, det var ikke poenget

Endret av Anders-Moen
Lenke til kommentar
Videoannonse
Annonse

PHP

<?php

if(preg_match_all("/

(.+?)

/is", $Text, $match))

{

     foreach($match[1] as $id => $code) 

     {

           $Text = str_replace($match[0][$id], '</span><div class="codebody"><div class="code">' . hilight_string($code) . '</div></div><span class="content">', $Text);

     }

}

?>

 

Noe sånn. Utestet.

 

Edit: Tabbet til legg til svar og trykte space før eg var ferdig :p

Endret av Shadows0
Lenke til kommentar

Hmm...

 

Åssen skal jeg liksom få denne inni her:

$r = mysql_query("SELECT * FROM blog WHERE id = '$id'");

$row = mysql_fetch_assoc($r);

echo '<span class="portfolio_title">' . htmlentities(stripslashes($row['title'])) . '</span>';
echo '<br />';
echo '<span class="content"><b>' . bbcode(nl2br(htmlentities(stripslashes($row['intro'])))) . '</b></span>';
echo '<br />';
echo '<br />';
echo '<span class="content">' . bbcode(nl2br(htmlentities(stripslashes($row['content'])))) . '</span>';
echo '<br />';
echo '<br />';
echo '<small>Published by <b>' . $row['pub_by'] . '</b> on ' . $row['date'] . '</small>';

echo '<br />';
echo '<br />';

include 'comments.php';

 

Og i tillegg så brukes [code*] flere ganger i løpet av en post...eks: http://andersmoen.com/blog/archive/4/

Endret av Anders-Moen
Lenke til kommentar

Klikk for å se/fjerne innholdet nedenfor

function sh_highlight_string($code)
{
$code = $code[1];
if(!preg_match("/<\?(php|).*\?>/i", $code))
{
 $code = "<?php\n$code\n?>";
}

$code = highlight_string($code, true);
$code = explode("<br />", $code);
$i = 1;
$highlighted = "<table class=\"code\">";
foreach($code as $lineno => $syntax)
{
 if(trim(strip_tags($syntax)) == "")
 {
 	continue;
 }
 $highlighted .= "<tr><td>$i</td><td>$syntax</td></tr>";
 $i++;
}
$highlighted .= "</table>";
return $highlighted;

}
$text = '
Her har du litt tekst
[*code]
$test = "Ein tekst streng";
echo $test; // Printet ut \'Ein tekst streng\'
[*/code]
Her er og litt meir tekst
[*code]
for($i = 0;$i<5;$i++)
echo $i;
[*/code]
';

echo preg_replace_callback("/\[code\](.+?)\[\/code\]/is", "sh_highlight_string", $text);

 

Der har du funskjonen eg brukar på mi eiga side. Grunnen til at den første koden eg la til ikkje fungerte var at eg gløymde å escape [ og ] :blush:

Endret av Shadows0
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...