84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
請問該如何用php產生不重複的字串?如同youtube後面的結尾會出現的字串:6Af6b_wyiwI (網址可接受的字元)而且有大小寫之分?以及可以設定每次出現的字串長度例如4~7隨機的就會變成 ga79e aa09gsw awe9f諸如此類(每次都會這樣變化
人生最曼妙的风景,竟是内心的淡定与从容!
建议用时间戳,可以MD5或sha1加密,但长度是固定的大小写固定,可以截取,也可以自己定义加密规则,自己定义的话,就可以设置想要的长度。这样做没有重复的可能(不可能事件)如果是自己定义字符串,然后随机获取的话,有重复的可能性(小概率事件)。如果是只是写url的话你也可以参考segmentfault的url写法
https://segmentfault.com/q/10...
PHP 10进制和62进制互转:
echo gmp_strval(gmp_init('9876543210', 10), 62)."\n"; //AmOy42 echo gmp_strval(gmp_init('AmOy42', 62), 10)."\n"; //9876543210
上面的AmOy42应该就是你想要的"字符串",其实它是一个62进制数字.62进制(10+26+26)利用10个数字+26个小写字母+26个大写字母来表示数值,从而大大减少数值位数.9876543210则是数据库里的自增ID,从而实现唯一.
生成顺序增长的数列,然后通过ascii码转为字符串
说个简单的方法,sha256等hash算法获取二进制数据(而不是十六进制字符串),然后再用base64编码
这参考短链接生成方法就OK
建议用时间戳,可以MD5或sha1加密,但长度是固定的大小写固定,可以截取,也可以自己定义加密规则,自己定义的话,就可以设置想要的长度。这样做没有重复的可能(不可能事件)
如果是自己定义字符串,然后随机获取的话,有重复的可能性(小概率事件)。
如果是只是写url的话
你也可以参考segmentfault的url写法
https://segmentfault.com/q/10...
PHP 10进制和62进制互转:
上面的AmOy42应该就是你想要的"字符串",其实它是一个62进制数字.
62进制(10+26+26)利用10个数字+26个小写字母+26个大写字母来表示数值,从而大大减少数值位数.
9876543210则是数据库里的自增ID,从而实现唯一.
生成顺序增长的数列,然后通过ascii码转为字符串
说个简单的方法,sha256等hash算法获取二进制数据(而不是十六进制字符串),然后再用base64编码
这参考短链接生成方法就OK