如何检查链接是否正常?

时间:2009-10-02 05:13:29

标签: hyperlink broken-links

我想创建一个网页,其中我添加了一些内部网链接。 我只是想知道如何检查我添加的链接,在某个时刻是否正常工作。 我想在RED中标记链接,如果它不起作用,那么它应该是绿色的。

4 个答案:

答案 0 :(得分:3)

如果您需要轻量级程序检查,则可以执行HTTP HEAD请求并检查大于或等于200且小于400的响应代码。

答案 1 :(得分:0)

如果你想检查客户端......

<style type="text/css">
.good {
   color:green;
}

.bad {
   color:red;
}
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
        $("a.checkLinks").each(checkme);
    })

    // load page from URL with ajax
    function checkme(i, item) {
        $.ajax({
            type: "GET",
            url: item.href,
            success: function(data, textStatus) {
                $(item).addClass("good");
            },
            error: function(request) {
                $(item).addClass("bad");
            }
          });
    }
</script>

<a class="checkLinks" href="good.html">Good</a><br/>
<a class="checkLinks" href="bad.html">Bad</a>

答案 2 :(得分:0)

如果你想检查服务器端(php示例):

<?php

function isup($url) 
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    if(curl_exec($ch)) {
        $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
        return ($httpcode < 400);
    }

    return false;
}

$url = "http://example.com/404";

printf('<a href="%s" class="%s">Link</a>', $url, isup($url) ? 'good' : 'bad');

答案 3 :(得分:-2)

在链接的另一端ping一些东西。虽然您可能找到检查接口状态或路由表或其他各种方法的方法......您真正想知道的是流量是否流入和流出该目的地。

在unix上可以使用ping-c参数发送大量数据包,-w指定等待时间(以秒为单位)。然后检查退出状态:

ping -c 3 -w 5 remote-host
如果数据包被丢弃,

ping将以非零退出代码退出。