この記事は公開から2年、最終更新日からも2年経過しています。内容が古くなっている可能性があります。
半角英大文字、半角英小文字、半角数字がそれぞれ必ず1文字以上混在する文字列を生成する。
*substrを使っているので、長い文字列生成には不向きかも。。
$length = 8; //生成したいパスワードの文字数 $upper_letter_length = random_int(1, $length - 2); //半角英大文字の文字数 $upper_letter_strings = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, $upper_letter_length); //半角英大文字のみのランダムな文字列生成 $lower_letter_length = random_int(1, $length - $upper_letter_length - 1); //半角英小文字の文字数 $lower_letter_strings = substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), 0, $lower_letter_length); //半角英小文字のみのランダムな文字列生成 $number_letter_length = $length - $upper_letter_length - $lower_letter_length; //半角数字の文字数 $number_strings = substr(str_shuffle('1234567890'), 0, $number_letter_length); //半角数字のみのランダムな文字列生成 $random_strings = str_shuffle($upper_letter_strings . $lower_letter_strings . $number_strings); //最終的な文字列