2017-07-19 89 views
1

我想让一个页面选择一个链接,然后去链接有2个链接,我试图从它决定从我已经阅读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

什么是你的问题? – Carcigenicate

+0

@Carcigenicate如何让它在链接一旦被选中之后进入链接 –

+0

你不''回显'header()'。它应该只是'header('Location:'。$ input [$ answer]);',就是这样!还要注意,已经添加了一个索引。查看手册:http://php.net/manual/en/function.header.php - 并注意'$ answer'将保存所选项目的索引,而不是值。 – Qirel

回答

0

PHP.net website解释的,array_rand()输出在设定的阵列的随机密钥,而不是值它自我。因此,对于您的情况,您需要使用提供的密钥来检索相应的值。 $输入[$答案。

此外,重定向不应该在回声。 header() is a function,并且无法按照您在示例中使用它的方式工作。虽然,我敢肯定你这样做只是为了调试脚本笑

试试这个:

$input = array("https://order.abcgameservers.com/aff.php?aff=47", "https://discord.gg/CjzZRBq"); 
$answer = array_rand($input, 1); 
header('Location: '.$input[$answer]); 
2

有三件事情需要注意这一点。

  1. header()不应该echo“版,它返回void
  2. array_rand()只会返回一个元素的,而不是值。
  3. 您应该始终在header("Location: ..");之后使用exit;(尽管如果脚本结束它可能不相关)。

从手册(重点煤矿)

精选一个或多个随机条目出的阵列,并且所述随机条目返回键(或键)。

实现这些改变后,你的代码应该是这样的

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