Avatar billede jebzki Nybegynder
08. november 2007 - 18:22 Der er 14 kommentarer og
1 løsning

regexp php - Unknown modifier 'b'

/<a href=\"/brugere/brugerinfo.asp?id=(.*?)\" target=\"hovedside\">(.*?)<\/a>/i

Hvad gør jeg lige forkert? Den udskriver:

/<a href=\"/brugere/brugerinfo.asp?id=(.*?)\" target=\"hovedside\">(.*?)<\/a>/i

Warning: preg_match() [function.preg-match]: Unknown modifier 'b
Avatar billede jebzki Nybegynder
08. november 2007 - 18:25 #1
hov, kom til at copy koden også.. den udskriver warning: ...
Avatar billede nielle Nybegynder
08. november 2007 - 18:30 #2
Hvis du bruger /-tegn i hver ende af dit mønster, så skal alle /-tegn i det indre escapes.
Avatar billede jebzki Nybegynder
08. november 2007 - 18:31 #3
preg_match_all("/<a href=\"(.*?)?id=(.*?)\" target=\"hovedside\">(.*?)<\/a>/is", $web, $regs);
Avatar billede nielle Nybegynder
08. november 2007 - 18:31 #4
Jeg ville nu hellere vælge et andet tegsn, så f.eks. #:

#<a href=\"/brugere/brugerinfo.asp?id=(.*?)\" target=\"hovedside\">(.*?)<\/a>#i
Avatar billede jebzki Nybegynder
08. november 2007 - 18:32 #5
Hvad skal det sige?

/<a href=\"\/brugere\/brugerinfo.asp?id=(.*?)\" target=\"hovedside\">(.*?)<\/a>/is

?
Avatar billede jebzki Nybegynder
08. november 2007 - 18:33 #6
preg_match_all("#<a href=\"/brugere/brugerinfo.asp?id=(.*?)\" target=\"hovedside\">(.*?)<\/a>#i", $web, $regs);

print_r($regs);

Udskriver ingenting :/
Avatar billede nielle Nybegynder
08. november 2007 - 18:34 #7
Ja, eller gør som i 08/11-2007 18:31:41 - det er lidt mere læsevenligt. :^)
Avatar billede jebzki Nybegynder
08. november 2007 - 18:35 #8
Jeg bruger bare mit eget eksempel:

preg_match_all("/<a href=\"(.*?)?id=(.*?)\" target=\"hovedside\">(.*?)<\/a>/is", $web, $regs);

Men smid svar, så deler vi
Avatar billede nielle Nybegynder
08. november 2007 - 18:36 #9
Hvis du briger '-tegn i stedet for "tegn rundt om strengen, kan du endda gøre den lidt mere læsevenlig:

preg_match_all('#<a href="/brugere/brugerinfo.asp?id=(.*?)" target="hovedside">(.*?)</a>#i', $web, $regs);

(PS: i koden 08/11-2007 18:33:53 skal <\/a> rettes til </a>)
Avatar billede nielle Nybegynder
08. november 2007 - 18:36 #10
Svar :^)
Avatar billede jebzki Nybegynder
08. november 2007 - 18:41 #11
Jeg får:

Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )

Ved:

preg_match_all("#<a href=\"/brugere/brugerinfo.asp?id=(.*?)\" target=\"hovedside\">(.*?)</a>#i", $web, $regs);

Jeg har en masse HTML i $web variablen. Så skal den fange alt det der står mellem <a href="......" ......>HER</a> i $web..

Det kan være $web indenholder:
"ksdjkajsdkajkd asd0as9 d9as09d <a href="/brugere/brugerinfo.asp?id=4238823" target="hovedside">heidi-min</a> kasjdjkajdk ajdkajsk daj"

Så skal den hente "4238823" og "heidi-min"
Avatar billede nielle Nybegynder
08. november 2007 - 19:13 #12
Du skal escape det ?-tegn som blot skal være et ?-tegn:

preg_match_all('#<a href="/brugere/brugerinfo\.asp\?id=(.*?)" target="hovedside">(.*?)</a>#i", $web, $regs);

Desuden bør man også escape .-tegn, men det er ikke så kritisk.
Avatar billede nielle Nybegynder
12. november 2007 - 19:12 #13
Er du kommet vidre med den her?
Avatar billede nielle Nybegynder
19. november 2007 - 17:10 #14
??
Avatar billede nielle Nybegynder
24. april 2008 - 17:35 #15
Tak for point :^)
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