2012-08-14 44 views
0

我的代码:PHP:发送流量的10%

$random_number = mt_rand(1,100); 

if ($random_number <= 10){ 
    header('Location: http://www.site1.com'); 
} else { 
    header('Location: http://www.site2.com'); 
} 

exit; 

不用说,看来如果你有大量的流量的工作,但是当你减到每天约1000个不重复的百分比徘徊在35至40%左右。

+7

随机数很少表现出您期望的方式。 – 2012-08-14 21:25:34

+0

@MarcB我明白你在那里做了什么! :) – 2012-08-14 21:26:31

+0

根据你的代码,用户应该只被重定向(平均)9%的时间,因为'<'实际上应该是'<='。虽然,tbh,为什么你不只是选择一个随机数字1到10并检查数字1? – jeremy 2012-08-14 21:29:37

回答

1

为了更准确地分配流量,请使用负载均衡器或在代码中增加计数器。

Here是为什么mt_rand也不是那么随意

+0

那篇文章说,它对于加密使用来说足够随机。密码学家并不担心数据的分布,但预测序列有多容易。对于蒙特卡洛来说,这应该足够好用。 – Barmar 2012-08-14 21:40:02

0

如果你正在寻找做一些A/B测试,there's a better way than blindly choosing at random一个不错的文章,它不是真正的要复杂得多。

+0

你链接了一个404. – aug 2016-01-28 18:16:45

+0

@aug - 看起来好像没了。这是一篇关于“多武器强盗”的文章的链接 - https://support.google.com/analytics/answer/2844870?hl=zh_CN是我在5分钟搜索中找到的最佳替代品。 – 2016-01-29 09:22:29