Avatar billede martin Nybegynder
25. april 2003 - 00:51 Der er 7 kommentarer og
1 løsning

preg_match - body

Hej,

jeg skal hente en HTML fil og få <body?>?</body> ud af teksten.

Det kan være forskelligt hvad der er af tags i <body> koden. Desuden kan det forekomme at der er flere <body>'er i selve dokumentet - den skal "kopiere" fra første <body> til sidste </body>.

På forhånd tak,
Martin Nielsen
Avatar billede martin Nybegynder
25. april 2003 - 00:52 #1
Jeg kan godt hente dokumentet... skal bare bruge preg_match eller en ligende funktion til at hente ud med.
Avatar billede erikjacobsen Ekspert
25. april 2003 - 01:00 #2
Er det ikke bare :

if (preg_match('/(<body.*<\/body>)/ims',$str,$matches)) {
  print $matches[1];
}
Avatar billede martin Nybegynder
03. maj 2003 - 19:27 #3
erikjacobsen > Jo, den kode kan bruges. Men du har vel ikke en hvor jeg ikke får body-tags med?
Avatar billede erikjacobsen Ekspert
03. maj 2003 - 19:29 #4
if (preg_match('/<body.*?>(.*)<\/body>/ims',$str,$matches)) {
  print $matches[1];
}
Avatar billede Slettet bruger
03. maj 2003 - 19:36 #5
erikjacobsen: Nu du er igang, kan du ikke forklare, hvordan det giver mening at anvende både /s og /m, det forstår jeg ikke. Jeg ville tro det ene gjorde det andet overflødigt.
Avatar billede erikjacobsen Ekspert
03. maj 2003 - 19:41 #6
m giver dig mulighed for at søge på flere linier, og det skal vi jo
s gør at . også matcher et linieskift, hvad det ellers ikke ville

De skal være der begge to. ;)
Avatar billede Slettet bruger
03. maj 2003 - 19:51 #7
erikjacobsen:
Kan du give et eksempel på, hvad $str skal være for at:

preg_match('/<body.*?>(.*)<\/body>/is', $str, $matches} (uden /m modifier)

- ikke fungerer?

Jeg har prøvet, jeg kan ikke finde på noget. Du bruger jo hverken ^ eller $. Og \n matcher du jo pga. /s alligevel?

martin:
http://dk.php.net/manual/en/pcre.pattern.modifiers.php
Avatar billede erikjacobsen Ekspert
03. maj 2003 - 19:58 #8
Det har du selvfølgelig ret i !
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