3

我们正在执行来自 PHP 的 curl 调用。

$url = $fullurl;

if (isset($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);

$check_url_status =  $headers['http_code'];
if ($check_url_status == '200')
    $ress = "Link Works";
else
    $ress =  "Broken Link";

}

我们应该考虑哪些其他 HTTP 状态代码来检查 URL 是否不是损坏/死链接。

4

1 回答 1

2

记住 5 个 HTTP 状态代码类:1xx 继续(协议切换)、2xx 正常、3xx 重定向、4xx 客户端错误、5xx 服务器错误。

如果您的 Curl 客户端遵循重定向(3xx),我认为您可以测试该状态代码 <= 299。所有其他状态代码都会产生“断开的链接”。

根据您的测试深度,您还可以考虑以下案例:

  • 401 Unauthorized/ 403 Forbidden : 资源需要认证。这并不意味着链接已损坏,但授权客户可能会看到它,而其他人不会。
  • 204 No Content :资源可访问但不返回任何内容。一些分析资源返回 204。但视觉结果将是损坏的图像或指向空白页面的链接。

如果您的目标是更改损坏链接的显示,您可以使用 Javascript 在客户端对其进行管理,但它可能仅限于您的域。看到这个问题

于 2017-06-07T08:50:43.613 回答