2012-05-05 8 views
1

サイトがアップであるかダウンであるかをチェックするスクリプトを作ろうとしています。すべて正常に動作しますが、サイトがサイトでない場合、そのサイトは存在しません。そして、PHPの実行負荷時間が増加します。私は何とかこれを処理したい。サイトが存在していないかどうかをチェックし、カールセッションを中断する方法?ここに私のスクリプトは次のとおりです。PHP:カールレスポンスの扱い方

<?php 
$ch = curl_init('http://86.100.69.228/'); // e.g. for this will increase execution time because the site doesn't exists 
curl_setopt($ch, CURLOPT_NOBODY, true); 
curl_exec($ch); 
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
echo $status_code; 
curl_close($ch); 
?> 

答えて

1

あなたはcurl_setoptでのcURL転送のCURLOPT_CONNECTTIMEOUTとCURLOPT_TIMEOUTオプションを設定することにより、タイムアウトを定義することができます。サイトがダウンしている場合、cURLは機能しなくなり、キャッチします!

1

サイトがダウンしCURLであるかどうかを確認したい場合には、そのようなhttp://eample.com/abx.phpxとして完全なURLをチェックしていないので、あなたがそのようなコモドhttp://www.comodo.com/secure-dns/として、「保護されたDNS」などのサービスを使用しているとき...最良の選択肢ではないかもしれませんあなたは常にIPアドレスで負荷サイトは92.242.144.10Search 92.242.144.10

私のアドバイスは、単に

function ping($host) 
{ 
    exec(sprintf('ping -n 2 %s', escapeshellarg($host)), $res, $rval); 
    return $rval === 0; 
} 

$result = ping("86.100.69.228"); 

アウトsockeをチェックするサーバーに対してpingを実行されてしまうので、リクエストが自動的に検証のために転送されるため、すべてのウェブサイトは200を返しますtは直接

function pingSocket($host, $port = 80, $timeout = 3) { 
    $fsock = fsockopen ($host, $port, $errno, $errstr, $timeout); 
    if (! $fsock) { 
     return FALSE; 
    } else { 
     return TRUE; 
    } 
} 

$result = pingSocket ("86.100.69.228"); 

これは、より良いほとんどの時間

の作品
関連する問題