Avatar billede blueforce Nybegynder
09. oktober 2003 - 09:12 Der er 2 kommentarer

Preg_replace på flere linjer

Hej, jeg sidder og roder lidt med preg_Replace og er stødt på et problem

jeg har følgende funktion:
$message = preg_replace("/\[code\](.+)\[\/code\]/e","'<table><tr><td><b>Code:</b></td></tr><tr><td>'.highlight_string(stripslashes('$1'), TRUE).'</td></tr></table>'",$message);

der gør at når man skriver [code]<? echo "ok"; ?>[/code]

så echo'er php det ud i et table og indsætter php koden som eval() gør, bare med farver.

Mit problem er , hvordan kan man få en preg_replace til at gælde på mere end én linje?
så man fx kan

[code]<?
echo "ok";
or die();
?>[/code]

det virker nemlig ikke med det kode jeg har pt.
Avatar billede olebole Juniormester
09. oktober 2003 - 19:49 #1
<ole>

Prøv:
$message = preg_replace("/\[code\][^\[]*\[\/code\]/e","'<table><tr><td><b>Code:</b></td></tr><tr><td>'.highlight_string(stripslashes('$1'), TRUE).'</td></tr></table>'",$message);


/mvh
</bole>
Avatar billede olebole Juniormester
09. oktober 2003 - 19:50 #2
SNOT ...!!! Sådan:

$message = preg_replace("/\[code\]([^\[]*)\[\/code\]/e","'<table><tr><td><b>Code:</b></td></tr><tr><td>'.highlight_string(stripslashes('$1'), TRUE).'</td></tr></table>'",$message);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester