我想知道是否可以使用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%"/>';
}
?>
该网站将托管在另一台服务器上,因此如果我的互联网出现故障,用户可能会访问该网站的备份版本。
答案 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,这应该是完美的。答案 1 :(得分:0)
根据您的方法,您需要3个不同的服务器:
效率不高,许多托管服务会自动提供网站的后备或缓存版本,以防万一。你不必乱用这个脚本,但是如果你坚持,你可以参考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%"/>';
}
?>