Gå til innhold

str_replace og highlight_string - Kan noen hjelpe?


Anbefalte innlegg

Hei :) Må nok krype til korset og spørre dere.

 

Jeg driver å jobber med en php side på norsk og der vil jeg liste ut fra db og få highlight på koden som er i artikkelen. På samma måte som vi kan med CODE funksjonen her. Litt flaut å spørre om dette siden jeg driver å lager denne php siden :blush: men men :D

 

koden min:

<?php
//db tilkobling

$query = "SELECT * FROM artikkel WHERE ID = '4'";
$result= mysql_query($query, $connection) or die 
("Could not execute query : $query." . mysql_error());

$row=mysql_fetch_array($result);

$art=$row[artikkel];

$art=nl2br($art);

$art=str_replace("[kode]","highlight_string('","$art");
$art=str_replace("[/kode]","');","$art");

echo $art;

?>

 

Jeg får lista ut og str_replace mener jeg funker, men den vil ikke highlighte det som kommer mellom highlight_string(' '); . Er mulig jeg har misforstått noe her.

 

dere kan se utfallet her: http://stianweb.com/art/

dessuten faller <?php bort når jeg printer ut.

 

Håper noen kan rettlede meg her, har leita en del rundt en stund nå uten å bli så mye klokere :(

 

Men på forhånd tusen takk :)

Endret av Svendsen
Lenke til kommentar
Videoannonse
Annonse

nå har jeg bytta ut replace fra forhje med:

 

$art=preg_replace("/(\[kode])(.+)(\[\/kode\])/isUe", "highlight_string('\\2')",$art);

 

Men nå få jeg jo feil melding samt at koden havner over selve teksten.

 

Jeg er heller ikke sikker på om jeg forstår settningen over, med alle / \

 

Noen fler peke pinner på vei ? hehe :)

Lenke til kommentar

En liten funksjon til å highlighte. Gir mulighet til å wrappe en div rundt, for bedre separering fra resten av teksten.

 

function highlight($tekst,$format) { // highlighter php-kode, og skriver ut en div med formatert kode i
$tekst = stripslashes($tekst);
$tekst = highlight_string($tekst, true);
if ($format == true) {
 $tekst = "<div class=\"phpbox\">$tekst</div>";
}
return $tekst;
}

 

Et greit kall til funksjonen (med regexp):

 

$input = preg_replace("#\[php\](.+?)\[/php\]#isUe", "highlight('\\1',false)", $input);

 

Dette er noe jeg vet funker.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...