webForumDet fria alternativet

Plocka ut delar av en hemsida?

8 svar · 593 visningar · startad av JakobJ

JakobJMedlem sedan apr. 200839 inlägg
#1

Finns det möjlighet at plocka ur en del av en hemsida till sin egen via PHP? Har hört att det finns något som heter file_get_contents, hur funkar det? Typ ange en url, en start och ett stopp för den och sedan låta den skriva ut det däremellan?

oskarsMedlem sedan nov. 20051 317 inlägg
#2

Jag kan ingenting om PHP, men söka kan jag :)

Ta en titt här:
http://se2.php.net/file_get_contents

Vad för information är du ute efter, och på vilken sida?

The_HulkMedlem sedan juni 20031 837 inlägg
#3

Såg att oskars hann före men postar ändå mitt svar.

med

$buf = file_get_contents($url);

så läser du in innehållet från en fil/url och får det i en variabel.

Sen får du använda t.ex. preg_match() / preg_match_all() för att söka upp det du vill i innehållet.
Om det du vill visa alltid finns på samma ställen i innehållet så kan du också använda substr()

Svårt att ge några exakta exempel innan man vet mer exakt vad du vill hitta.
OBS! Tänk på att du alltid måste ha tillåtelse innan du plockar information från andras sidor.

JakobJMedlem sedan apr. 200839 inlägg
#4

Säg att vi ska plocka ut hur många inlägg The_Hulk har gjort från http://www.webforum.nu/search.php?searchid=1075704... Då får den börja med "av" och sluta med "<br />Sökningen tog <strong>", hur exakt ska jag skriva då?

wally_91Medlem sedan feb. 2006511 inlägg
#5

Du får använda dig av preg_match[_all].

Ett utkast till ett regexp

preg_match('#av(.*)\<br \/\>S&ouml;kningen tog \<strong\>#i',...,...);
JakobJMedlem sedan apr. 200839 inlägg
#6

Ni får ursäkta att jag är väldigt ny inom PHP. Hur skulle en hel kod se ut för att få fram det?

The_HulkMedlem sedan juni 20031 837 inlägg
#7

Sidan du länkar till fungerar inte.

Du kan utgå från följande kod:

<?php
$buf = file_get_contents("http://www.webforum.nu/search.php?searchid=1075704");
$m = array();
preg_match('#av(.*)\<br \/\>S&ouml;kningen tog \<strong\>#i', $buf , $m); 
print_r($m);
?>
JakobJMedlem sedan apr. 200839 inlägg
#8

Den skriver bara ut "Array ( ) " då.

The_HulkMedlem sedan juni 20031 837 inlägg
#9

Då har du inte fått någon träff vilket inte är så konstigt eftersom sidan inte fungerar.
Ta någon annan sidan är söksidan, verkar som den är temporär.

138 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)