【问题标题】:PHP - How to check if your sites is up (up to 15 sites)PHP - 如何检查您的站点是否已启动(最多 15 个站点)
【发布时间】:2015-03-08 02:49:36
【问题描述】:

我想制作一个脚本来检查我所有的网站是否启动。 该代码适用于一个站点,但是当我尝试检查例如一次 10 个站点,代码停止工作。

<?php
    function checkStatus($url){
     $agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; pt-pt) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27";
     $ch=curl_init();
     curl_setopt ($ch, CURLOPT_URL,$url );
     curl_setopt($ch, CURLOPT_USERAGENT, $agent);
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt ($ch,CURLOPT_VERBOSE,false);
     curl_setopt($ch, CURLOPT_TIMEOUT, 5);
     curl_exec($ch);
     $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
     curl_close($ch);
     if($httpcode>=200 && $httpcode<300)
         return true;
     else
        return false;
    }
    $do = array();
    $n = 0;

    $myfile = fopen("domens.txt", "r") or die("Unable to open file!");
        while(!feof($myfile)) {
            $do = fgets($myfile);
            $n = $n + 1;
        }
    fclose($myfile);
    echo '<br><br>';
    $trimmed = file('domens.txt', FILE_SKIP_EMPTY_LINES);
    for($x=0;$x<$n;$x++){
        if(checkStatus($trimmed[$x]))
            echo " <br>Website is up  " . $trimmed[$x];
        else
            echo "  <br> Website is down ". $trimmed[$x];
    }
?>

【问题讨论】:

标签: php web


【解决方案1】:

要检查您的网络服务器是否仍然正常工作,请尝试使用 Nagios 或 Icinga 等监控服务器。

【讨论】:

    【解决方案2】:
    function checkOnline($domain) {
       $curlInit = curl_init($domain);
       curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
       curl_setopt($curlInit,CURLOPT_HEADER,true);
       curl_setopt($curlInit,CURLOPT_NOBODY,true);
       curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
    
       //get answer
       $response = curl_exec($curlInit);
    
       curl_close($curlInit);
       if ($response) return true;
       return false;
    }
    
    if(checkOnline('http://google.com')) { echo "google online\n"; }
    if(checkOnline('http://facebook.com')) { echo "facebook online\n"; }
    if(checkOnline('http://stackoverflow.com')) { echo "stackoverflow online\n"; }
    

    来自Get the site status - up or down的代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      相关资源
      最近更新 更多