Avatar billede mathiash Nybegynder
27. juni 2005 - 19:50 Der er 14 kommentarer og
1 løsning

preg_replace - regexp

Hej!

Er der nogle der kan fortælle mig hvorfor denne kode kun returnerer strengen: "$1" til funktionen? Den burde returnere hvad $1 indeholder.

$kodetags = preg_replace("/\[kode\](.*?)\[\/kode\]/", $highlighter->highlight("$1"), $fetch["tekst"]);

//Mini
Avatar billede erikjacobsen Ekspert
27. juni 2005 - 19:53 #1
prøv
$kodetags = preg_replace("/\[kode\](.*?)\[\/kode\]/e", '$highlighter->highlight("$1")', $fetch["tekst"]);
Avatar billede mathiash Nybegynder
27. juni 2005 - 19:58 #2
Tak! Nu er der bare ét problem...
$fetch["tekst"] indeholder:

==========
Funktion til at generere en tilfældig kode.

[kode]
<?php
echo generer_kode(); // Returnerer fx hjeS82
echo generer_kode(8); // Returnerer fx 8fd8HsA0
?>
[/kode]

bla
==========

Hvis jeg stiller alt indenfor [kode][/kode] på én linje virker det - men hvis jeg sætter det så det er til at læse (på flere linjer) så vil den kun vise [kode][/kode].
Avatar billede barklund Nybegynder
27. juni 2005 - 20:07 #3
Du skal bare smide en s-modifier på - så matcher . også på linjeskift:

$kodetags = preg_replace("/\[kode\](.*?)\[\/kode\]/se", '$highlighter->highlight("$1")', $fetch["tekst"]);

:)

--
Morten Barklund
Avatar billede mathiash Nybegynder
27. juni 2005 - 20:09 #4
Perfekt!

Det kunne egentlig godt være at jeg skulle sætte mig ned og lære lidt regexp.
Har i nogle gode links til guide, tutorials, eller lign. ?
Avatar billede nielle Nybegynder
27. juni 2005 - 20:18 #5
Prøv:

$kodetags = preg_replace("/\[kode\](.*?)\[\/kode\]/es", '$highlighter->highlight("$1")', $fetch["tekst"]);

- hvor s'et betyder at det skal behandles som "single line".
Avatar billede nielle Nybegynder
27. juni 2005 - 20:19 #6
Mental note: Huske at reloade!
Avatar billede nielle Nybegynder
27. juni 2005 - 20:20 #7
Avatar billede barklund Nybegynder
27. juni 2005 - 21:42 #8
Og et godt bogmærke til nogle af de mere avancerede ting (der står ikke meget, men nok til at jeg lige er med igen): http://wiki.tcl.tk/9384
Avatar billede mathiash Nybegynder
28. juni 2005 - 11:16 #9
Jeg vil kigge på linksne! Tak for hjælpen alle 3!
Læg et svar (alle 3) :)
Avatar billede erikjacobsen Ekspert
28. juni 2005 - 11:25 #10
Ingen point til mig, tak.
Avatar billede barklund Nybegynder
28. juni 2005 - 11:34 #11
Jeg skal da gerne kaste et lille svar, for at skrive 's' - men ikke for mange point for det :)
Avatar billede mathiash Nybegynder
28. juni 2005 - 12:35 #12
Well så læg et :)
Avatar billede barklund Nybegynder
28. juni 2005 - 12:52 #13
(schhh!)
Avatar billede barklund Nybegynder
28. juni 2005 - 16:35 #14
Hovhov - jeg gider altså ikke have 60 point per bogstav - vil du ikke have de 45 tilbage igen?
Avatar billede nielle Nybegynder
28. juni 2005 - 17:51 #15
Ingen point til mig.
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