选择一个随机链接然后继续去链接

时间:2017-07-19 21:49:48

标签: php arrays

我正在尝试让一个页面选择一个链接,然后转到链接有两个链接,我正在尝试从我已经阅读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')

2 个答案:

答案 0 :(得分:2)

有三件事需要注意。

  1. header()不应为echo,而是返回void
  2. array_rand()只会返回元素的,而不是值。
  3. 您应该始终在exit;之后使用header("Location: ..");(尽管如果脚本的结尾可能不相关)。
  4. 从手册(强调我的)

      

    从数组中挑选一个或多个随机条目,返回随机条目的键(或键)。

    实施更改后,您的代码将如下所示

    $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]);