我想知道是否有任何好的
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";
希望这可以帮助你:)