我正在寻找生成随机/唯一字符串的最短方法,为此我使用了以下两个:
$cClass = sha1(time());
或者
$cClass = md5(time());
但是,我需要字符串以字母开头,我正在查看 base64 编码,但==
最后添加了它,然后我需要摆脱它。
用一行代码实现这一目标的最佳方法是什么?
更新:
PRNDL 提出了一个很好的建议,我最终使用了它,但做了一些修改
echo substr(str_shuffle(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ),0, 1) . substr(str_shuffle(aBcEeFgHiJkLmNoPqRstUvWxYz0123456789),0, 31)
会产生 32 个模仿 md5 哈希的字符,但它总是会产生第一个字符一个字母,就像这样;
但是,Uours确实改进了他的回答;
substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 1).substr(md5(time()),1);
更短更甜
Anonymous2011的另一个建议非常棒,但由于某种原因,第一个字符总是 M、N、Y、Z,所以不符合我的目的,但会是选择的答案,顺便说一句,有谁知道为什么它总是产生那些特定的字母?
这是我修改版本的预览
echo rtrim(base64_encode(md5(microtime())),"=");