我正在尝试编写php刷新URL重定向。 饱和是如果目标页面繁忙,它将重定向到类似http://www.go.com/busy.php的URL。如果一切正常,它将转到http://www.go.com。而且我想刷新网络,直到它进入正常页面。
这是我的代码,但我认为这是错误的...
<?php
$url = "http://www.go.com/busy.html";
$url2 = "http://www.go.com/action.php";
$page = $_SERVER['PHP_SELF'];
$sec = "1";
if ($url == $url2) {
header ("http://www.go.com/action.php");
}
else {
header ("Refresh: $sec; url=$page");
}
?>
答案 0 :(得分:1)
我相信您要问的是如何将用户保留在页面上,直到远程服务器响应时间达到阈值为止。
您可以向第一个URL发出cURL请求,以查看它是否满足超时要求。如果失败,则重定向到新URL。
这未经测试:
<?php
$urlToCheck = "http://www.example.com/";
$maxAllowedRequestTime = 3; // Seconds
$ch = curl_init($urlToCheck);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_exec($ch);
$requestTime = curl_getinfo($ch, CURLINFO_TOTAL_TIME);
curl_close($ch);
// Allow redirect because timeout is less than or equal to $maxAllowedRequestTime
if (false !== $requestTime && $requestTime <= $maxAllowedRequestTime) {
header ("Location: $urlToCheck");
} else {
// Refresh current page until request time is less than or equal to $maxAllowedRequestTime
header ("Refresh:1");
}