Avatar billede djthomas Nybegynder
25. maj 2006 - 23:11 Der er 6 kommentarer og
1 løsning

hjælp til regulært udtryk

jeg er lidt dårlig til det der med regulære udtryk. Jeg har selv forsøgt dette her, men ereg_replace gør ikke det jeg havde håbet.

$triggerCode = "[Galleri={id}]";

                    ereg( "([\[\=a-zA-Z0-9]+)" , $triggerCode, $triggers);
                    $trigger1 = $triggers[0];
                                        //$trigger1 indeholder nu "[Galleri="                   
unset( $triggers );

                   
                    ereg( "(\]+)" , $triggerCode, $triggers);
                    $trigger2 = $triggers[0];
                                        //$trigger2 indeholder nu "]"                   
unset( $triggers );
                   
                    $html = ereg_replace( $trigger1 ."([a-zA-Z0-9])".$trigger2, " HER KOMMER KODEN", $html );

Hvis jeg så et sted i $html har [Galleri=2] så skulle det efter min bedste overbevisning gerne blive erstattet af "HER KOMMER KODEN" men det gør det ikke
Avatar billede coderdk Praktikant
26. maj 2006 - 00:17 #1
Det kan være så simpelt som:

$triggerCode = "[Galleri=\d+]";
$triggerCode = '/' . preg_quote( $triggerCode, '/' ) . '/i';
$html = preg_replace( $triggerCode, "HER KOMMER KODEN", $html );
Avatar billede djthomas Nybegynder
26. maj 2006 - 11:52 #2
Det virker ikke :-S
Avatar billede coderdk Praktikant
26. maj 2006 - 13:39 #3
Mjah, den escapede sq lidt for meget :) Prøv med:

$triggerCode = "[Galleri={id}]";
$triggerCode = '/' . preg_quote( $triggerCode, '/' ) . '/i';
$triggerCode = str_replace( "\{id\}", "(\d+)", $triggerCode );
$html = preg_replace( $triggerCode, "HER KOMMER GALLERI NUMMER \\1", $html );
Avatar billede djthomas Nybegynder
26. maj 2006 - 17:19 #4
Det virker lige som det skal! Svare du lige?
Avatar billede coderdk Praktikant
26. maj 2006 - 17:23 #5
Aight :)
Avatar billede djthomas Nybegynder
26. maj 2006 - 18:40 #6
Lige et enkelt spørgsmål mere :-D

Hvis jeg har koden [galleri=2] i $html og gør sådan her:

$html = preg_replace( $triggerCode, $class->get_html( \\1 ), $html );

så blir værdien i get_html metoden sat til 1 og ikke 2 som som jeg havde håbet på :-D Why?
Avatar billede coderdk Praktikant
26. maj 2006 - 19:13 #7
Prøv med:

$triggerCode = "[Galleri={id}]";
$triggerCode = '/' . preg_quote( $triggerCode, '/' ) . '/ie';
$triggerCode = str_replace( "\{id\}", "(\d+)", $triggerCode );
$html = preg_replace( $triggerCode, "\$class->get_html(\\1)", $html );

/e evaluerer php - Jeg ved ikke lige om du er nødt til at lave en funktion i stedet for en klasse...
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