فکر کنم یک مقدار برای نمرۀ شما دیر شده ولی از کلاسی به نام Crawler میتونید برای یافتن لینکهای یک صفحه استفاده کنید. برای مشخص کردن وضعیت درستی صفح هم کافی HTTP RESPONSE CODE اون لینک رو چک کنید که اگر 200 و یا به طور کلی 2XX بود میتونید مطمئن شید لینک سالمه . برای اینکار از تابع PHP_CURL استفاده کنید فکر کنم راحت ترینش هست.
$url = "http://yahoo.com";
$UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0";
$CurlInit =curl_init();
curl_setopt ($CurlInit, CURLOPT_URL,$url );
curl_setopt($CurlInit, CURLOPT_USERAGENT, $UserAgent);
curl_setopt ($CurlInit, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($CurlInit,CURLOPT_VERBOSE,false);
curl_setopt($CurlInit, CURLOPT_TIMEOUT, 5);
$page=curl_exec($CurlInit);
$UrlResponseCode = curl_getinfo($CurlInit, CURLINFO_HTTP_CODE);
curl_close($CurlInit);
if( ($UrlResponseCode>=200) && ($UrlResponseCode<300) )
Echo("URL : ".$url." is OK!");
else
Echo("URL : ".$url." is not Responding");
این لینکها هم برای اطلاعات بیشتر ببینید :
لیست کدهای ریسپانس : http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
توضیحات تابع Curl در سایت پی اچ پی: http://ir.php.net/manual/en/ref.curl.php
کلاس Crawler برای پیدا کردن لینکها : http://www.phpclasses.org/browse/package/4441.html