1

自分のサイトのサイトマップを作成したい。したがって、サイトマップを作成する前に、各URLのステータスコードを知りたいと思います。ステータスコードを差し引くためにcurlオプションを使用しました。私のサイトには400以上のURLがあります。カールを使うと時間がかかります。

ステータスコード200を含むURLを許可したいのは私だけです。

各URLのステータスコードを差し引くための他のオプションを教えてください。

以下のカールコードを使用しました。

$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 に答える