• Forum
      /  
    Programmering og webdesign
      /  
    Programmering
  • 26-07-2006 · 13:53 1320 visninger 8 svar
  • Denne tråd er over 6 måneder gammel

    Er du sikker på, at du har noget relevant at tilføje?

  • PHP: preg_match og regular expression

    Af Dirne Bruger Aspirant
Hej,

Jeg er ved at lave noget, hvor jeg henter hele kildekoden fra en html side og hiver alle link ud. Jeg har bare lidt problemer med at få preg_match til at give mig resultater.

Et eksempel på hvordan koden kan se ud:

$html = implode('', file('[url] http://www.eksempel.dk/';));
preg_match("/^<a(.)*>$/", $html, $result);
print_r($result);

Det virker bare ikke. Jeg får ingen resultater. Nogen der ved hvad der er galt? Jeg har tjekket min regular expression på en online tester, og der ser den ud til at virke fint.

Dette virker fx fint:
$html = "b";
preg_match("/^b/", $html, $result);
print_r($result);

Bruger Aspirant
26-07-2006 13:55
Der skal så ikke lige stå [url] i koden, så se venligst væk fra det.
Supporter
26-07-2006 14:37
Hvad er det mere præcist du vil? Skal din $result indeholde hele html-koden, bare uden links?
Bruger Aspirant
26-07-2006 18:21
Altså $result skulle gerne være et array med resultatet af min søgning, dvs. den skulle gerne indeholde alle links i html koden som strenge i et array.

Nu ved jeg godt at preg_match stopper når den har fundet det første resultat, men jeg skifter selvfølgelig til preg_match_all når den virker.
Nova

#4

Mega Nørd
26-07-2006 19:26
Bare lige en offtopic, file_get_contents(), så slipper du for at implode til string.
Bruger Aspirant
26-07-2006 21:02
#4 Det gør jo vel ingen forskel?

Fra PHP.net:

file_get_contents

(PHP 4 >= 4.3.0, PHP 5)
file_get_contents -- Reads entire file into a string

Beskrivelse
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

Den gør vel det samme som implode eller hvad?

Stadig ingen der har nogen forslag til hvorfor det ikke virker?
Bruger Aspirant
26-07-2006 21:21
Har fundet ud af hvad problemet var nu.
Mega Supporter
26-07-2006 21:28
Og det var..?
kebb

#8

Gæst
28-07-2006 00:53
Der er fejl i din regular ekspression.

Måske vil det være godt, hvis du retter den her på sitet, så at andre kan se, hvordan det skal gøres rigtigt :-)
Bruger påkrævet
En bruger er påkrævet for at oprette svar på Hardwareonline.dk
Du kan oprette en bruger her eller logge ind her

Log ind for at få flere funktioner