简单的加权链接旋转?

时间:2012-03-29 21:38:55

标签: php random rotation redirect weighted

我现在通过将目标发送到以下脚本来分割测试广告系列中的目标网页:

$link[] = "http://www.website.com/lp1";
$link[] = "http://www.website.com/lp2";

$random_number = rand(0,count($link)-1);
$redirectlink = $link[$random_number];

header("Location: $redirectlink");

如果我想在75%的时间内显示第一张LP,我该怎么做呢?只是简单地复制第一个链接两次工作,还是有更好的方法来解决它?

1 个答案:

答案 0 :(得分:2)

也许有更好的方法,但这也有效

$link[0] = array('link' => 'http://example.com/1', 'percent' => 7);
$link[1] = array('link' => 'http://example.com/2', 'percent' => 20);
$link[2] = array('link' => 'http://example.com/3', 'percent' => 73);

$percent_arr = array();
foreach($link as $k => $_l) {
    $percent_arr = array_merge($percent_arr, array_fill(0, $_l['percent'], $k));
}

$random_key = $percent_arr[mt_rand(0,count($percent_arr)-1)];
$redirectlink = $link[$random_key]['link'];

header("Location: $redirectlink");