加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

检查php链接是否损坏

发布时间:2020-05-31 01:35:09 所属栏目:PHP 来源:互联网
导读:我想知道是否有任何好的 PHP脚本(库)检查链接是否损坏?我有一个mysql表中的文档的链接,可能只是检查链接是否导致文档,或者我被重定向到其他url.任何想法?我宁愿在PHP中做. 可能涉及: Check link works and if not visually identify it as broken 您可以使

我想知道是否有任何好的 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";

希望这可以帮助你:)

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读