1

我想为我的站点创建站点地图。所以在创建站点地图之前,我想知道每个 url 的状态码。我使用 curl 选项来扣除状态码。我的网站中有 400 多个网址。如果我使用 curl,它需要很长时间。

只有我想允许包含状态代码 200 的 url。

您能否请任何人告诉我任何其他选项来扣除每个网址的状态码。

我使用了下面的 curl 代码。

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $urlparam);  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 240);  

curl_exec($ch);
$curlcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $curlcode;

参考链接

4

1 回答 1

1

几个月前我遇到了同样的问题。我发现使用此代码示例访问我自己的页面状态代码要快得多:

<?php
//
// Checking the status of a web page - funmin.com
//

$server="www.YOUR_WEBSITE.com";
function sockAccess($page)
{
   $errno = "";
   $errstr = "";
   $fp = 0;
   global $server;
   $fp = fsockopen($server, 80, $errno, $errstr, 30);

   if ($fp===0)
   {
      die("Error $errstr ($errno)");
   }
   $out = "GET /$page HTTP/1.1\r\n";
   $out .= "Host: $server\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp,$out);
   $content = fgets($fp);
   $code = trim(substr($content,9,4));
   fclose($fp);
   return intval($code);
}
?>

更多文档可以在这里找到:http ://www.forums.hscripts.com/viewtopic.php?f=11&t=4217

于 2012-07-06T15:14:15.337 回答