$siteinfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_HEADER, 1);
-
- if ($fetchbody)
- curl_setopt($ch, CURLOPT_NOBODY, 0);
- else
- curl_setopt($ch, CURLOPT_NOBODY, 1);
-
+ curl_setopt($ch, CURLOPT_HEADER, 1);
+ curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
return(original_url($curl_info['location'], ++$depth, $fetchbody));
}
- $pos = strpos($header, "\r\n\r\n");
+ // Check for redirects in the meta elements of the body if there are no redirects in the header.
+ if (!$fetchbody)
+ return(original_url($url, ++$depth, true));
+
+ // if the file is too large then exit
+ if ($curl_info["download_content_length"] > 1000000)
+ return($url);
+
+ // if it isn't a HTML file then exit
+ if (($curl_info["content_type"] != "") AND !strstr(strtolower($curl_info["content_type"]),"html"))
+ return($url);
- if ($pos)
- $body = trim(substr($header, $pos));
- else
- $body = $header;
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_HEADER, 0);
+ curl_setopt($ch, CURLOPT_NOBODY, 0);
+ curl_setopt($ch, CURLOPT_TIMEOUT, 10);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
+
+ $body = curl_exec($ch);
+ curl_close($ch);
if (trim($body) == "")
- return(original_url($url, ++$depth, true));
+ return($url);
+ // Check for redirect in meta elements
$doc = new DOMDocument();
@$doc->loadHTML($body);