You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP统计URL GET变量频次并跳转至最高频次对应页面方法咨询

现有代码问题

你当前的代码存在两个笔误,会导致统计结果错误:

  1. 参数获取语句里错误写了$r = $_GET["r"];,实际你需要获取的是$f = $_GET["f"];
  2. 构造$info数组时用到了未定义的$f变量,和上面的笔误对应,会导致统计值缺失。

完整实现方案

步骤1:修正参数获取逻辑,增加健壮性处理

// 用??语法处理参数不存在的场景,避免抛出警告
$a = $_GET["a"] ?? '';
$b = $_GET["b"] ?? '';
$c = $_GET["c"] ?? '';
$d = $_GET["d"] ?? '';
$e = $_GET["e"] ?? '';
$f = $_GET["f"] ?? '';
$g = $_GET["g"] ?? '';
$h = $_GET["h"] ?? '';

$info = [$a, $b, $c, $d, $e, $f, $g, $h];

步骤2:统计频次并取最高频的值

$countRes = array_count_values($info);
// 按统计频次倒序排序,保留键值关联
arsort($countRes);
// 取排序后第一个元素的键,即为出现次数最多的值
$topValue = key($countRes);

步骤3:执行跳转

注意跳转前必须删除所有输出逻辑(比如你之前写的print_r要删掉),否则header跳转会失效:

// 请根据你实际的页面路由规则调整目标URL拼接逻辑
$targetPage = "/{$topValue}.html";
header("Location: {$targetPage}");
exit;

可选优化:边界情况处理

如果需要处理多值频次并列最高、参数值非法的场景,可以增加校验逻辑:

// 允许跳转的目标值白名单,防止恶意构造参数跳转到非法页面
$allowedPages = ['imagine', 'lead', 'champion'];
if (!in_array($topValue, $allowedPages) || empty($topValue)) {
    // 非法值跳转到默认页
    header("Location: /default.html");
    exit;
}

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:45:06