我正在尝试让一个页面选择一个链接,然后转到链接有两个链接,我正在尝试从我已经阅读PHP Manual并在那里使用了什么来做这个
$input = array("https://order.abcgameservers.com/aff.php?aff=47",
"https://discord.gg/CjzZRBq");
$answer = $rand_keys = array_rand($input, 1);
echo "header('Location: $answer')";
它回显了标题('位置:1')
答案 0 :(得分:2)
有三件事需要注意。
header()
不应为echo
,而是返回void
。 array_rand()
只会返回元素的键,而不是值。 exit;
之后使用header("Location: ..");
(尽管如果脚本的结尾可能不相关)。 从手册(强调我的)
从数组中挑选一个或多个随机条目,返回随机条目的键(或键)。
实施更改后,您的代码将如下所示
$input = array("https://order.abcgameservers.com/aff.php?aff=47", "https://discord.gg/CjzZRBq");
$answer = $rand_keys = array_rand($input);
header('Location: '.$input[$answer]);
exit;
您会注意到header()
已被改变为两种方式:已删除回声(以及随之而来的引号),并且它以$input[$answer]
为目标而非$answer
。
或者,您可以使用array_flip()
来翻转值/索引对。如果您使用array_rand()
,则会获得随机值!
$answer = array_rand(array_flip($input));
header('Location: '.$answer);
exit;
答案 1 :(得分:0)
如PHP.net website中所述,array_rand()输出数组中的随机键,而不是它自身的值。因此,在您的情况下,您需要使用提供的密钥来检索相应的值。 $输入[$答案。
此外,重定向不应该在回声中。 header() is a function并且无法按照您在示例中使用它的方式工作。虽然,我很确定你这样做只是为了调试你的脚本lol
试试这个:
$input = array("https://order.abcgameservers.com/aff.php?aff=47", "https://discord.gg/CjzZRBq");
$answer = array_rand($input, 1);
header('Location: '.$input[$answer]);