如何让php或者JS产生随机名字,从可选名字中随机显示

JavaScript08

如何让php或者JS产生随机名字,从可选名字中随机显示,第1张

可以给你一个思路

在php有一个随机函数rand(min,max),min和max分表是设定的随机范围,当然可以不给他们值,那么php会在0-rand_max之间随机取值,在某些平台下(例如 Windows)RAND_MAX 只有 32768。

你可以先定义一个数组,然后循环取出随机的值,保存到数组里面,这么多数据,相信重复的概率是很小了。然后在取出的时候,先获取数组的长度,然后以0为min,数组长度-1为max进行随机获取数据,打印出数组中下标元素为该数的数据,这就是你想要的了。

JS中同上,不过JS随机是用Math.random(),它只会随机0-1之间的数据,所以你要获取多的,最好在后面*10000等你想要的数据,EG:Manth.random()*1000000,其它的原理同PHP

如果需要知道详细代码,请追问,谢谢。

建议自己先试试!

确认签名算法正确,可用t=jsapisign页面工具进行校验。也就是你自己后台生成签名要和微信校验算法生成的签名一致才可以(可能大小写不同)。注意:签名生成规则如下:参与签名的字段包括有效的jsapi_ticket(获取方式详见微信JSSDK文档),noncestr(随机字符串,由开发者随机生成),timestamp(由开发者生成的当前时间戳),url(当前网页的URL,不包含#及其后面部分。注意:对于没有只有域名没有path的URL,浏览器会自动加上/作为path,如打开/)。特别注意:你在利用参数生成签名的时候,要对所有待签名参数按照字段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。我的最开始的错误就是没有注意到生成签名的那几个参数要按照key=value的样式连接成一个字符串,然后在sha1加密生成。/****Java写的参数拼接算法***/String[]paramArr=newString[]{"jsapi_ticket="+jsapi_ticket,"timestamp="+timestamp,"noncestr="+nonce,"url="+jsurl}Arrays.sort(paramArr)//将排序后的结果拼接成一个字符串Stringcontent=paramArr[0].concat("&"+paramArr[1]).concat("&"+paramArr[2]).concat("&"+paramArr[3])System.out.println("拼接之后的content为:"+content)确认config中nonceStr(js中驼峰标准大写S),timestamp与用以签名中的对应noncestr,timestamp一致。确认url是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分。确认config中的appid与用来获取jsapi_ticket的appid一致。确保一定缓存access_token和jsapi_ticket。确保你获取用来签名的url是动态生成的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。