I normally use cURL of fopen to test if a link (url) is valid. Try this script.
CODE
function validURL($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_BUFFERSIZE, 8192);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
@$components = parse_url($url);
if ( $info["http_code"] == 200 ) {
return true;
} else {
if ( $components["scheme"] == "ftp" && $info["http_code"] >= 200 && $info["http_code"] < 300 ) {
return true;
}
return false;
}
}
Works with http(s) and ftp protocols. Have fun.