如何检查网站是否可访问?

时间:2014-06-17 17:34:27

标签: php

我想知道是否可以使用PHP页面访问网站。

这是我的计划:

<?php 
  $website = /* bool to see if site is up */
  if($website)
{
  echo'<iframe src="http://64.126.89.241/" width="100%" height="100%"/>';  
}else
{
  echo'<iframe src="http://tsiserver.us/backup/" width="100%" height="100%"/>';  
}
?>

该网站将托管在另一台服务器上,因此如果我的互联网出现故障,用户可能会访问该网站的备份版本。

3 个答案:

答案 0 :(得分:2)

这是一个简单的函数,用于确定网站是否存在使用PHP和cURL

function urlExists($url=NULL)  
{  
    if($url == NULL) return false;  
    $ch = curl_init($url);  
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);  
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    $data = curl_exec($ch);  
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
    curl_close($ch);  
    if($httpcode>=200 && $httpcode<300){  
        return true;  
    } else {  
        return false;  
    }  
}  

this post抓取了关于如何检查网址是否存在的问题。

,因为Twitter在维护时应该提供300以上的错误消息,或者404,这应该是完美的。

参考:https://stackoverflow.com/a/1239090/568414

答案 1 :(得分:0)

根据您的方法,您需要3个不同的服务器:

  1. 托管脚本的服务器
  2. 托管网站的服务器
  3. 托管后备网站的服务器
  4. 效率不高,许多托管服务会自动提供网站的后备或缓存版本,以防万一。你不必乱用这个脚本,但是如果你坚持,你可以参考PHP's curl manual

答案 2 :(得分:0)

答案就在这里,谢谢你们!

<?php 
    function ping($host, $port, $timeout) { 
      $tB = microtime(true); 
      $fP = fSockOpen($host, $port, $errno, $errstr, $timeout); 
      if (!$fP) { return "down"; } 
      $tA = microtime(true); 
      return round((($tA - $tB) * 1000), 0)." ms"; 
    }


    $website = ping("64.126.89.241", 80, 10);
    if($website != "down"){
      echo'<iframe src="http://64.126.89.241/" width="100%" height="100%"/>';  
    }else{
      echo'<iframe src="http://tsiserver.us/backup/" width="100%" height="100%"/>';  
    }
?>