Code: Select all
<?php
function get_a_href($file)
{
$h1count = preg_match_all('/(href=")(.*?)(")/i',$file,$patterns);
return $patterns[2];
}
function get_images($file)
{
$h1count = preg_match_all('/(<.*)\s (src="(.*)")/isxmU',$file,$patterns);
$res = array();
array_push($res,$patterns[3]);
array_push($res,count($patterns[3]));
return $res;
}
function pingLink($domain)
{
$file= @fopen($domain,"r");
$status= -1;
if (!$file)
{
$status = -1;
}
else
{
$status = 1;
fclose($file);
}
//echo"now returnong";
return $status;
}
function getBrokenLinks($url)
{
$arrayOfLinks=array();
$ind=0;
$file = file_get_contents($url);
$links = get_a_href($file);
$images = get_images($file);
if(!empty($links[0]))
{
echo "<ul>";
echo "<br/>Links found:<ul>";
foreach($links as $key => $val)
{
if($val!='#')
{
$p=strpos($val,'http');
echo $ind;
if($p>-1)
{
$arrayOfLinks[$ind++]=$val;
echo "<li>".$val."</li>";
}
else
{
$arrayOfLinks[$ind++]=$url."/".$val;
echo "<li>".$url."/".$val."</li>";
}
}
}
echo "</ul>";
}
else
{
echo "<br/><div class=\"error\">No Links found</div><br/>";
}
echo "<h1>Images</h1>";
echo "no if images==".$images[1];
if(!empty($images[0]))
{
echo "</ul>";
echo "<br/>images:<ul>";
foreach($images[0] as $key => $val)
{
echo $ind;
$p=strpos($val,'http');
if($p>-1)
{
$arrayOfLinks[$ind++]=$val;
echo "<li>".$val."</li>";
}
else
{
$arrayOfLinks[$ind++]=$url."/".$val;
echo "<li>".$url."/".$val."</li>";
}
}
echo "</ul>";
}
else
{
echo "<br/>No images found";
}
echo "value of ind before foreach==".$ind;
$i=0;
echo "<br>no of elts in arrayOfIndex arry===".count($arrayOfLinks);
echo "<ul>";
for($i=0;$i<count($arrayOfLinks);$i++)
{
$st=pingLink($arrayOfLinks[$i]);
echo "<li>".$i." ".$arrayOfLinks[$i]." ".$st."</li>";
}
//foreach($arrayOfLinks as $val)
//{
//$st=pingLink($val);
//echo "<li>".$i." ".$val." ".$st;
//if($st==1)
// echo "<img src='valid.png'></li>";
//else
//{if($st==-1)
// echo "<img src='invalid.png'></li>";}
//$i++;
//}
echo "value of i after foreach==".$i;
echo "</ul>";
}
$url='http://www.zycomm.net';
getBrokenLinks($url);
?>