mod-edit
Niet bumpen, please!
Ik zal bij deze even de gehele code van de spider posten...
De fout zit hem dus bij de variabelen in regel 75 en 83
[CODE]
<?php
$rem_dot = 'paginas';
$add_links_nl = 'pagina_links';
/*
Deze functie haalt de tekst van een pagina op.
*/
function getBron($url){
$useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$bestand = curl_exec($ch);
curl_close($ch);
return $bestand;
}
/*
Deze functie haalt de links uit een tekst.
*/
function getLinks($url){
$pagina = getBron($url);
$tag_lijst = array ();
$tag_lijst = explode(">", $pagina);
$links = array();
$regs = array();
while (list ($id, $htmlTag) = each($tag_lijst)){
if (stristr($htmlTag, "href")) {
preg_match("/(href)\s*=\s*[\'\"]?(([[a-z]{3,5}:\/\/(([.a-zA-Z0-9-])+(:[0-9]+)*))*([+:%\/\?~=&;\\\(\),._ a-zA-Z0-9-]*))(#[.a-zA-Z0-9-]*)?[\'\" ]?(\s*rel\s*=\s*[\'\"]?(nofollow)[\'\"]?)?/i", $htmlTag, $regs);
$links[] = $regs[2];
}
}
return stopLinksInDatabase($url, $links);
}
/*
Deze functie stopt de gevonden links in de database. Als er nieuwe pagina's
bij die links zitten, wordt dat ook opgeslagen.
*/
function stopLinksInDatabase($url, $links){
global $site;
while (list ($id, $link) = each($links)){
// Als link begint met een /, $site ervoor zetten
if (substr($link, 0, 1) == "/"){
$link = $site . $link;
}
// Als link begint met www, http:// er voor zetten
if (substr($link, 0, 3) == "www"){
$link = "http://" . $link;
}
// Laatste / weg indien aanwezig
if (substr($link, strlen($link) - 1, 1) == "/"){
$link = substr($link, 0, strlen($link) - 1);
}
if (strlen(trim($link)) > 0){
$sql3 = "
INSERT INTO ".$rem_dot." (url, gespiderd)
VALUES ('" . $link . "', '0')
";
if(!$res = mysql_query($sql3)){
trigger_error(mysql_error().'<br>In query: '.$sql3);
}
$sql4 = "
INSERT INTO ".$add_links_nl." (url, link)
VALUES ('" . $url . "', '" . $link . "')
";
if(!$res = mysql_query($sql4)){
trigger_error(mysql_error().'<br>In query: '.$sql4);
}
}
}
return true;
}
/*
Deze functie zorgt ervoor dat alle pagina's die nog niet gespidered
zijn gespidered worden.
*/
function controleerPaginas(){
$result = mysql_query(" SELECT *
FROM paginas
WHERE gespidered = '0'") or die (mysql_error());
while ($obj = mysql_fetch_object($result)){
getLinks($obj->url);
}
return true;
}
mysql_connect("localhost", "", "") or die (mysql_error());
mysql_select_db("") or die (mysql_error());
$site = "http://
www.voorbeeld.nl";
// Bepaal de links op de homepage
getLinks("http://
www.voorbeeld.nl");
// Volg tot 3 keer toe de nieuw gevonden links
for ($i = 1; $i <= 3; $i++){
controleerPaginas();
}
mysql_close();
?>