Try this.
<?php
// functions
function GetAddresses ($string){
print "DEBUG - $string";
$ct = 0;
$addressArray = array();
$hmmArray = explode("\n",$string);
foreach ($hmmArray as $item){
preg_match("/<a.<\/a>/",$item,$matchArray);
$matchArray = preg_replace("/\"/","",$matchArray);
$matchArray = preg_replace("/\'/","",$matchArray);
foreach($matchArray as $item){
$tmpArray = preg_split("/[\s]/",$item);
foreach($tmpArray as $item2){
if(preg_match("/href/",$item2)){
list($stripped,$garbage) = split(">",$item2);
list($garbage,$address) = split("=",$stripped,2);
if(!preg_match("/http|ftp/",$address)){
if(preg_match("/>/",$address)){
preg_match("/(.)>.*/",$address,$tmpArray2);
$address = $tmpArray2[1];
}
$addressArray[$ct] = $address;
$ct++;
}
}
}
}
}
return $addressArray;
}
// error checking
if (!$url){
echo "Please enter a url";
exit;
}
// open connection & get page
$contents = "";
$fp = fsockopen ("$url", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
}else {
fputs($fp, "GET /$page HTTP/1.1\r\n");
fputs($fp, "Accept: */*\r\n");
fputs($fp, "Referer: hmm\r\n");
fputs($fp, "Accept-Language: en-gb\r\n");
fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n");
fputs($fp, "Host: $url\r\n\r\n");
while(!feof($fp)) {
$contents.= fgets($fp, 128);
}
fclose ($fp);
// get title page
$title = strip_tags($contents, '<title>');
eregi("(<title>)(.*)(</title>)",$title,$out);
$title = $out[2];
// strip all other html tags
$links = strip_tags($contents, '<a>');
$dataArray = GetAddresses($links);
// echo it all
echo "<b>Page title:</b> $title<br />\n";
echo "<b>Number Of Links:</b> ".sizeof($dataArray)."<br /><br />\n";
for ($i=0; $i<sizeof($dataArray); $i++){
echo $dataArray[$i]."<br />\n";
}
}
?>