あわせて読みたい Text_Password

http://www.plusmb.jp/2009/02/06/2439.html

あわせて読みたい:

といっても完全に同じことができるわけじゃないみたいですけどね.
っで、ざっと見た感じですが、

文字列の種類を指定 (デフォルト 大小文字英数字 )
small - 小文字英字
large - 大文字英字
smallalnum - 小文字英数字
largealnum - 大文字英数字
num - 数字
alphabet 大小文字英字
alnum - 大小文字英数字

の実現を実現するための実装についてですが、全部switchするんじゃなくて、small、large、smallalnum、largealnumは一旦case sentiveに作って、後でstrtoupper/strtolowerするといい気がしました.
趣味の問題のレベルかもしれないけど.

ネタ的に面白いから気が向いたら別のアプローチもしてみたいかもだ.