webForumDet fria alternativet

Hur får man denna att funka? (om det går)

PHP

1 svar · 259 visningar · startad av mibbe

Medlem sedan mars 2000402 inlägg
Frågan#1

Jag har letat efter ett php-script som ska ta uppgifter från en serietabell ( http://www.vibf.se/auto_gen/50.html ) Idag hittade jag ett på https://www.hotscripts.com som jag tror kan passa mitt syfte.

Men. Programmering är rena grekiskan för mig så jag undrar om någon skulle kunna hjälpa mig hur jag ska göra för att få detta script att funka, alternativt att ni säger att det här scriptet får du aldrig att funka, det är för dåligt skrivet.

<?
/* 

Contentgrabber v3.0a 

Copyright (C) Arvid Bux 
Distributed under the terms of the GNU General Public License 

[email]Arvid@ArvidBux.nl[/email] 
[url]www.arvidbux.nl[/url] 

THIS IS AN APLHA VERSION, SO WHEN YOU ENCOUNTER BUGS MAIL THEM TO [email]ARVID@ARVIDBUX.NL[/email] 
OR GO TO [url]http://www.arvidbux.nl/weblog/comments.php?id=P26_0_1_0[/url] 

*/ 

$url = "http://url.to.com/"; // Trailing slash when not using filename 
$file = "content.inc"; // file to write to. remember to chmod 777 to not get errors 
$unique_start = "<html>"; // Where to begin to grab 
$unique_end = "</html>"; // Where to end the grab 

###################################################### 
## No editing below here 
## Editing below this line voids warranty  
###################################################### 

ini_set('max_execution_time', '0'); 
flush (); 

// fetch domein from url 
$fetch_domain = parse_url($url); 

$fetch_domain = $fetch_domain[host]; 

// Host checking code 
$socket_handle = fsockopen("$fetch_domain", 80, $error_nr, $error_txt,30); 
if(!$socket_handle) 
{ 

print("Cannot make a connection to: $fetch_domain and therefore cannot collect your requested data"); 
$contents = implode("",@file( $file ) ); 
echo $contents; 
exit; 
} 

$fd= fread(fopen("$url", "r"), 100000); 

if ($fd) 
{ 
$start= strpos($fd, "$unique_start"); 
$finish= strpos($fd, "$unique_end"); 
$length= $finish-$start; 
$code=Substr($fd, $start, $length); 
} 

###################################################### 
## No editing above here 
## Editing above this line voids warranty  
###################################################### 

// $code = preg_replace("new code", "old code", $code); 
// uncomment the above line to edit the output 

echo $code; 
$tmpfile = fopen($file,"w+"); 
$fp = fwrite($tmpfile,$code); 
fclose($tmpfile); 
flush (); 
?>
Medlem sedan sep. 20005 700 inlägg
#2

Vad är det du ska hämta ut från sidan?
Du lär få modifiera skriptet en hel del för att passa just ditt ändamål skulle jag tro.
Jag förstår inte varför den håller på att spara till fil. Det skulle jag skippat.

I $url pillar du givetvis in adressen till sidan. $unique_start innehåller en sträng som säger vart den ska börja läsa in data och $unique_end innehåller en sträng där den ska sluta läsa.
T.ex om sidans innehåll är:
"sidans innehåll med ett <b>värde</b>"
så kan du hämta upp värde genom att i $unique_start skriva "<b>" och $unique_end skriva "</b>". Då kommer $code (som han döpt variabeln till) innehålla värde.
Sen får du göra detta flera ggr för att hämta flera olika data ur sidan.

r/ Angående att skriva till fil. Om du vill spara ner data från sidan till en fil så är det givetvis befogat att göra som koden ovan. Men om du bara ska presentera det du hämtar på en sida så är det onödigt.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)