【问题标题】:how to check if a URL exists or not - error 404 ? (using php)如何检查 URL 是否存在 - 错误 404? (使用 php)
【发布时间】:2011-04-05 21:10:26
【问题描述】:

如何检查 URL 是否存在 - 错误 404? (使用 php)

<?php
$url = "http://www.faressoft.org/";
?>

【问题讨论】:

    标签: php url exists


    【解决方案1】:

    如果你有allow_url_fopen,你可以这样做:

    $exists = ($fp = fopen("http://www.faressoft.org/", "r")) !== FALSE;
    if ($fp) fclose($fp);
    

    虽然严格来说,这不会只为 404 错误返回 false。可以使用流上下文来获取该信息,但更好的选择是使用 curl 扩展:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://www.example.com/notfound");
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_exec($ch);
    $is404 = curl_getinfo($ch, CURLINFO_HTTP_CODE) == 404;
    curl_close($ch);
    

    【讨论】:

    【解决方案2】:

    检查 404/200 等最简单的一种。

    <?php
    $mylink="http://site.com";
    $handler = curl_init($mylink);
    curl_setopt($handler,  CURLOPT_RETURNTRANSFER, TRUE);
    $re = curl_exec($handler);
    $httpcdd = curl_getinfo($handler, CURLINFO_HTTP_CODE);
    
    
    if ($httpcdd == '404')
         { echo 'it is 404';}
    else {echo 'it is not 404';}
    
    ?>
    

    【讨论】:

      【解决方案3】:

      您可以使用 PHP 库 curl。使用 curl,您可以查询页面,然后检查错误代码:

      CURLE_HTTP_RETURNED_ERROR (22)
      

      如果 CURLOPT_FAILONERROR 设置为 TRUE 并且 HTTP 服务器返回 >= 400 的错误代码,则会返回此值。

      来自 php.net 上的 CURL 文档:

      <?php
      // Create a curl handle to a non-existing location
      $ch = curl_init('http://404.php.net/');
      
      // Execute
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_exec($ch);
      
      // Check if any error occured
      if(curl_errno($ch))
      {
          echo 'Curl error: ' . curl_error($ch);
      }
      
      // Close handle
      curl_close($ch);
      ?>
      

      http://www.php.net/manual/en/function.curl-errno.php

      【讨论】:

        猜你喜欢
        • 2010-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-24
        • 2011-01-17
        • 2015-11-03
        • 1970-01-01
        相关资源
        最近更新 更多