Avatar billede siredward Nybegynder
20. september 2005 - 21:12 Der er 8 kommentarer og
1 løsning

Søg, find og kopier i PHP

Hejsa,

Jeg sidder lidt og leger med et script i PHP som skal kunne søge en given hjemmeside for et givent start søgepunkt og et givent slut søgepunkt og så kopiere alt kode imellem de to. Det skal helst finde alle match og kopiere alt imellem dem allesammen.

Foreksempel:

Startpunkt: <a>
Slutpunkt: </a>

...skulle gerne give alle link som er på siden osv.


Er det noget der kan lade sig gøre.


På forhånd tak,

Lauge Jepsen
Avatar billede coderdk Praktikant
20. september 2005 - 21:27 #1
if ( preg_match_all( "/<a href=['\"]?(*?)['\"]?>(.*?)<\/a>/i", $indhold, $matches ) )
{
  echo "<pre>"; var_dump( $matches ); echo "</pre>";
}
else
{
  echo "Ingen hits";
}
Avatar billede siredward Nybegynder
20. september 2005 - 21:38 #2
Hmmm,

kan ikke lige lure den. "?>" i if statementet lukker da PHP gør den ikke?

Kan du ikke give et eksempel hvor den f.eks. søger efter links på http://www.eksperten.dk/?

Mvh
Lauge
Avatar billede coderdk Praktikant
20. september 2005 - 21:47 #3
Well, det er ikke inde i PHP ;) ['\"]? betyder at der må være en ' eller en " men at det ikke behøves...
Avatar billede Slettet bruger
20. september 2005 - 21:49 #4
Jeg ved ikke helt hvad du mener, men måske du kunne bruge dette?

http://www.eksperten.dk/spm/638045
Avatar billede siredward Nybegynder
20. september 2005 - 22:17 #5
Ok, så vidt så godt:

Jeg har nu kopieret eksemplet fra det andet spørgsmål og er nu istand til at finde alle <h2> overskrifter i en artikel på www.webcafe.dk. Det ser sådanher ud:

<?php

$html = file_get_contents("http://www.webcafe.dk/artikler/html/introduktion/");
if (preg_match_all("/<h2>(.+?)<\/h2>/is", $html, $matches))
{
    foreach ($matches[1] as $match)
    {
        echo $match . "<br>";
    }
}
else
{
    echo "Ingen Match";
}

?>


Jeg har nok også dummet mig lidt da jeg stillede spørsmålet for jeg spurgte jo om hvordan man fandt noget mellem <a> og </a>. Det jeg har brug for er selvfølgelig selve link URL'en.

Altså det der står mellem    <a href="  og  ">

Hvordan ville du modificere ovenstående kode så den kunne det?

Mvh
Lauge
Avatar billede coderdk Praktikant
20. september 2005 - 22:31 #6
if ( preg_match_all( "/<a href=\"(.*?)\">/i", $indhold, $m ) )
{
  $matches = $m[1];
  var_dump( $matches );
}
else
{
  echo "Ingen hits";
}
Avatar billede siredward Nybegynder
20. september 2005 - 22:45 #7
Yeeees, så virker det :)

Tusind tak skal du have. Hvis du smider et svar, så smider jeg points :)
Avatar billede coderdk Praktikant
20. september 2005 - 22:51 #8
Yessir :)
Avatar billede Slettet bruger
23. september 2005 - 06:34 #9
Selv tak.
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