PHPでランダム文字列を生成するString_Randomクラス

以前PerlString::RandomモジュールをPHPに移植した(PHP版String::Random - Unknown::Programming)のですが、そもそもPerlを使わない人にとっては何をするモジュールか分かりにくい(名前で大体わかるかもですが)ということもあり、ちょっと簡単に使い方とかを説明しておきます。

まー要はランダムな文字列を生成するだけのものなのですが、何が良いのかって言うと正規表現っぽい文字列を与えることで様々なランダム文字列を生成することができるというところなんですよね。

<?php

require_once 'String/Random.class.php';

$random   = new String_Random;
$rand_str = $random->randregex('[A-Za-z0-9]{32}');

こんな感じで正規表現っぽいのが指定できるので上記のように書くと32桁の英数字でランダムな文字列を生成してくれます。

他にも複雑な例をあげるなら

<?php

$rand_str = $random->randregex('[A-Z]{2}[a-z]{2}.[a-z]{2}\d');

これは先頭二文字は大文字の英字で、次の二文字が小文字の英字、次の一文字は任意の文字列で、次の二文字がまた小文字の英字、で最後の一文字が数字のランダム文字列を生成してくれます。

使える構文は以下。

  \w    英数字とアンダーバー「_」
  \d    数字
  \W    \w以外にマッチ
  \D    \d以外にマッチ
  .     任意の文字
  []    文字クラス。範囲指定ができる
  {}    繰り返し回数指定
  *     {0,}と同じ意味
  ?     {0,1}と同じ意味
  +     {1,}と同じ意味

実装はPHP4ベースです。PHP5ベースに作り変える時期はまだ未定ですね。PHP5.3が出たら本腰入れるかも。

あ、ちなみに恥ずかしいワーニングが出てたのでバージョンアップしました。ごにょごにょ。

コードはこちら↓

String_Random-0.02