全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1141|回复: 7

[翻译] php随机出来的数据,经常是特定的几个

[复制链接]
发表于 2015-8-5 11:11:55 | 显示全部楼层 |阅读模式
本帖最后由 muyang 于 2015-8-5 12:34 编辑

算是解决了吧,好像是那个 随机数发生器播种的问题。。

我的测试环境是php5.4,还以为不是播种器的问题

反正加了个 srand() 就正常了。。


(为什么5.4也还要播种,那就不清楚了。。汗)
发表于 2015-8-5 11:13:53 | 显示全部楼层
$Key = rand(0,10000);
$a = $arr[$Key]
发表于 2015-8-5 11:14:10 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2015-8-5 12:04:13 来自手机 | 显示全部楼层
本帖最后由 gaoji.me 于 2015-8-5 12:13 编辑

$arr=file("a.txt"); $b=mt_rand(0,10000);$a=$arr[$b];
发表于 2015-8-5 12:04:40 | 显示全部楼层
用mt_rand中间加点延时呢
发表于 2015-8-5 12:11:02 | 显示全部楼层
本帖最后由 dison_lee 于 2015-8-5 12:12 编辑

并不懂php,当时写c程序的时候遇到过这种问题,不知是否类似。
rand是需要时间种子,而程序运行太快时间没来得及改变(秒为单位)才会产生你这种效果。
解决办法是把时间种子改成毫秒为单位,或者运行一次后让进程sleep几秒之后就不会产生这种情况了。
这里有个c的文章你可以看下:http://**blogs.com/caosiyang/archive/2012/07/03/2575236.html
也是新手,解决了的话麻烦更贴分享下,感谢!
发表于 2015-8-5 12:55:42 | 显示全部楼层
我记得PHP 5.2已经不用srand()了。用2楼的是可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-5 09:58 , Processed in 0.067247 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表