ランダム/一意の文字列を生成する最短の方法を探しています。そのために、次の2つを使用していました。
$cClass = sha1(time());
また
$cClass = md5(time());
ただし、文字で始まる文字列が必要です。base64エンコーディングを見ていましたが==
、最後に追加され、それを取り除く必要があります。
1 行のコードでこれを実現する最善の方法は何でしょうか?
アップデート:
PRNDL は良い提案を思いついたので、最終的にそれを使用しましたが、少し修正しました
echo substr(str_shuffle(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ),0, 1) . substr(str_shuffle(aBcEeFgHiJkLmNoPqRstUvWxYz0123456789),0, 31)
md5 ハッシュを模倣した 32 文字が生成されますが、最初の文字は常にアルファベット文字になります。
しかし、Uoursは本当に改善され、彼の答えは次のようになりました。
substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 1).substr(md5(time()),1);
短くて甘い
Anonymous2011による他の提案は非常に素晴らしいものでしたが、何らかの理由で最初の文字は常に M、N、Y、Z のいずれかであったため、私の目的には合いませんでしたが、選ばれた答えでした。それらの特定の文字をもたらしますか?
ここに私の修正版のプレビューがあります
echo rtrim(base64_encode(md5(microtime())),"=");