我想知道是否有任何好的
PHP脚本(库)检查链接是否损坏?我有一个MysqL表中的文档的链接,可能只是检查链接是否导致文档,或者我被重定向到其他url.任何想法?我宁愿在PHP中做.
可能涉及:
Check link works and if not visually identify it as broken
您可以使用此功能检查断开的链接:
function check_url($url) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$data = curl_exec($ch);
$headers = curl_getinfo($ch);
curl_close($ch);
return $headers['http_code'];
}
您需要安装CURL才能使其工作.现在您可以使用以下方式检查断开的链接:
$check_url_status = check_url($url); if ($check_url_status == '200') echo "Link Works"; else echo "broken Link";
还请检查此链接的HTTP状态代码:HTTP Status Codes
我想你也可以检查301和302状态码.
另一种方法是使用get_headers函数.但是,只有您的PHP版本大于5,这才有效:
function check_url($url) {
$headers = @get_headers( $url);
$headers = (is_array($headers)) ? implode( "\n ",$headers) : $headers;
return (bool)preg_match('#^HTTP/.*\s+[(200|301|302)]+\s#i',$headers);
}
在这种情况下,只需检查输出:
if (check_url($url)) echo "Link Works"; else echo "broken Link";
希望这可以帮助你:)