基于时间每10分钟轮换URL的PHP代码改造需求
基于时间的URL轮换PHP实现
修改思路
核心逻辑是通过时间差计算当前应展示的URL索引,实现每10分钟按顺序轮换、循环展示的效果:
- 计算从固定起始点到当前时间的总分钟数
- 除以10分钟的轮换间隔,得到已走过的周期数
- 用周期数对URL总数取模,锁定当前要跳转的URL索引,完成循环
修改后的代码
<?php $version = "v1.01"; $linksfile = "urlrotator.txt"; $rotation_interval = 10; // 轮换间隔(分钟) // 读取URL列表并过滤空行,避免无效条目干扰 $urls = array_filter(file($linksfile), function($line) { return trim($line) !== ''; }); $url_count = count($urls); if ($url_count === 0) { die('URL列表为空,请检查urlrotator.txt文件'); } // 计算当前应展示的URL索引 $current_time = time(); $total_minutes = floor($current_time / 60); // 转换为总分钟数 $cycle_number = floor($total_minutes / $rotation_interval); // 计算已过的10分钟周期数 $current_index = $cycle_number % $url_count; // 取模得到循环索引 // 取出目标URL并跳转 $goto = trim($urls[$current_index]); header("Location: $goto"); ?>
代码细节说明
- 空行过滤:用
array_filter处理读取的URL列表,避免文件末尾空行导致的索引错误 - 自定义起始时间:如果不想从Unix纪元开始轮换,可替换时间计算逻辑为自定义起始点,示例:
$start_time = strtotime('2024-01-01 00:00:00'); // 自定义起始时间 $time_diff = time() - $start_time; $total_minutes = floor($time_diff / 60); - 循环验证:每10分钟周期内,URL会按
nr1.html→nr2.html→…→nr10.html→nr1.html的顺序循环跳转
内容的提问来源于stack exchange,提问作者Jess Sogaard
相关产品推荐
相关产品推荐

