Avatar billede mads1987 Nybegynder
30. maj 2005 - 19:46 Der er 10 kommentarer og
2 løsninger

Aflæse anden hjemmeside

Hej, jeg har forgæves søgt en løsning på et problem, og prøver nu her.

Lad os antage der eksisterer en hjemmeside på domænet fremmedsdomæne.dk, denne hjemmeside ser således ud:

<html>
<head>
</head>

<body>
Dagens bogstav: R
</body>
</html>

Hjemmesiden viser at dagens bogstav er et R, dette ønsker jeg at aflæse med en anden hjemmeside, ved hjælp af PHP. Jeg ønsker altså et script, som kan gå ind og hente koden på siden, og herefter finder det bogstav der står lige under <body> og efter teksten ”Dagens bogstav”.

Hvordan kan dette lade sig gøre?

Med venlig hilsen
Mads
Avatar billede sukos Juniormester
30. maj 2005 - 20:09 #1
Du kan bruge file() til at hente siden, og derefter strpos() eller til at finde hvilken linie det ligger på, når ellers du har fået lov af hjemmesiden! :O)
Avatar billede saucer Nybegynder
30. maj 2005 - 21:04 #2
Jeg tror ikke at du kan bruge file() til dette.

Det helt korrekte ville være noget i stil med ;

<?
ob_start();           
      include("http://fremmedsdomæne.dk");               
      $page = ob_get_contents();
      ob_end_clean();

?>

Og så kan du bruge funktioner så som :
trim();
strpos();
strip_tags();
explode();

til at klippe information ud.
Avatar billede mads1987 Nybegynder
30. maj 2005 - 22:34 #3
Synes ikke det er så nemt som det lyder :) Nogen der vil vise mig hvordan de vil skære R'et ud af hovedsiden (Fra spørgsmålet)?
Avatar billede tjens Nybegynder
30. maj 2005 - 22:34 #4
Jeg har læst en fremmed side ind i en variabel sådanher:

      $theurl = "http://fremmedsdomæne.dk";
      if ( !( $fp = fopen( $theurl, "r") ) )
        { echo "<p> Could not contact $theurl</p>\n";
        }
      else
        { $page = fread($fp,128);  // Tallet er max. antal tegn der laeses ind
          fclose($fp);
        }
Avatar billede hmortensen Nybegynder
31. maj 2005 - 01:37 #5
Kommer and på hvor meget siden variere efter opdatering.
I dit eksempel er der 46 tegn før R, så det kunne gøres sådan her:
$content = file_get_contents("http://blabla");
echo substr($content, 46, 1);
Avatar billede sukos Juniormester
31. maj 2005 - 07:52 #6
Man kan nu godt bruge file()

Et eks.

<?php
$find = @file("http://www.showsource.dk/steffen");
    if($find) {
        for($i = 0; $i < count($find); $i++) {
            if(!preg_match("/Alder/", $find[$i])) {
            continue;
            }else{
            $g = ($i+1);
            $find[$g] = strip_tags($find[$g]);
            $find[$g] = trim($find[$g]);
            echo"Steffen er ". $find[$g] ." gammel";
            }
        }
    }else{
    echo"Kunne ikke åbne siden";
    }
?>

Men der er jo flere måder at gøre det på :O)
Avatar billede coderdk Praktikant
31. maj 2005 - 09:19 #7
$url = 'http://eksempel.dk/';
$cnt = file_get_contents( $url );
if ( preg_match( '!Dagents bogstav: ([a-zæøåÆØÅ])!i', $cnt, $m ) )
{
  echo "Dagens bogstav er $m[1]";
}
else
{
  echo 'Kunne ikke finde dagens bogstav :(';
}
Avatar billede sukos Juniormester
31. maj 2005 - 09:29 #8
Der ligger en fil her som der kan den testes på :O)

http://exp.showsource.dk/621908/find_tekst.txt
Avatar billede sukos Juniormester
31. maj 2005 - 09:32 #9
Og der er lige et t for i dagens i coderdk's ex.
Avatar billede coderdk Praktikant
31. maj 2005 - 09:52 #10
Hovsa! Tak sukos :) Til gengæld manglede du et "meget" mellem "for" og "i" :D lol
Avatar billede saucer Nybegynder
18. juni 2005 - 21:05 #11
skal du ikke snart lukke her ?
Avatar billede mads1987 Nybegynder
22. oktober 2005 - 03:07 #12
Tak for hjælpen
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