自分のメモ用に置いときます。
function generate_password($length = 8) {
$pwd = array();
// パスワード生成素材
$pwd_material = array(
'lower' => range('a', 'z'),
'upper' => range('A', 'Z'),
'number' => range('0', '9')
);
// $length分回す
while (count($pwd) < $length) {
// 必ず半角大文字英数字を1回は入れる
if (count($pwd) < 3) {
$key = key($pwd_material);
next($pwd_material);
}
else {
$key = array_rand($pwd_material);
}
$pwd[] = $pwd_material[$key][array_rand($pwd_material[$key])];
}
shuffle($pwd);
return implode($pwd);
}