2016-06-30 10 views
1

私は、ランダムな文字列を生成するためのコマンドがあります。いつか彼らは10、11または12の長さの文字列を返す、PHPで長さがランダムな文字列を生成するにはどうすればよいですか?

$random = sprintf('%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535))

しかし、私はそれをテストします。誰でもこのコマンドを修正して、常に長さが12のストリングを正確に返すことができます(10,11などではありません)。私のプロジェクトのために、私はこのコマンドを使用することしかできませんので、私はそれを修正し、新しいソリューションを使用せずに助けてください。私の悪い英語をありがとうと申し訳ありません。

+1

12の長さは、あなたが数値コンテキストで '$のrandom'を使用しています持ってまで?返される文字列は常に12文字であるため、(16進)数として使用すると先行ゼロが失われる可能性があります。 – syck

+0

元のコードを見直すと、@syckが言ったように、実際には長さ12の文字列が返ってきていることに気づきました。元のポスターは、実際に何が出力に間違っているかを少し詳しく説明できますか?出力と)? – DunnoHowToCode

答えて

0

これを試してください。

$random = sprintf('%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535)); 
$random = str_pad($random, 12, '0', STR_PAD_LEFT); 
echo $random; 

この意志パッド0とランダム変数$それは

関連する問題