php - 如何将重定向的网站刷新到php上的正常页面?
问题描述
我正在尝试编写 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");
}
?>
解决方案
我相信您要问的是如何在远程服务器响应时间达到阈值之前将用户保留在页面上。
您可以向第一个 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");
}
推荐阅读
- mysql - 在 MySQL 'CREATE TABLE' 语句中使用和不使用 BTREE 有什么区别?
- razor - Azure DevOps 部署并不总是覆盖 cshtml 文件
- javascript - 为什么 Bootstrap 4 切换按钮不起作用?
- kubernetes - Keycloak 领域探测尚未准备好
- kubernetes - 在部署 K8s daemonset 时,当一个节点几乎没有资源时会发生什么?
- php - 我有一个要插入数据库的 php 数组,但插入的内容只是说“数组”
- http - Rocket发生错误时如何返回500以外的状态码?
- python-3.x - 在 Python 中使用 int() 将类型转换为整数
- python - Python 正则表达式负向后看,包括行首
- javascript - 如何使 Ctrl-f 始终在 Tabulator Plus 有关分页和高度的问题中工作?