HOME >> Tips >> PHP

php でランダムな文字列や乱数を生成する方法

2017/6/10
文書番号:20741


PHP でランダムな文字列や乱数を生成する方法です。
ランダムなパスワードを生成する場合などに使用できます。


英字(大文字小文字混在)のランダムな文字列を生成するサンプルです。



// ランダムな文字列を生成します (英字のみ)
// $length: 生成する文字列の長さを指定します 
function CreateRandomString($length) {

    $str = array_merge(range('a', 'z'), range('A', 'Z"'));

    for ($i = 0; $i < $length; $i++) {
        $result .= $str[rand(0, count($str)-1)];
    }

    return $result;
} 
英字(大文字小文字混在)と数値が混在したランダムな文字列を生成するサンプルです。


// ランダムな文字列を生成します (英字と数値)
// $length: 生成する文字列の長さを指定します 
function CreateRandomString($length) {

    $str = array_merge(range('a', 'z'), range('A', 'Z"'), range('0', '9'));

    for ($i = 0; $i < $length; $i++) {
        $result .= $str[rand(0, count($str)-1)];
    }

    return $result;
} 
数値のみのランダムな文字列を生成するサンプルです。


// ランダムな文字列を生成します (数値のみ)
// $length: 生成する文字列の長さを指定します 
function CreateRandomString($length) {

    $str = array_merge(range('0', '9'));

    for ($i = 0; $i < $length; $i++) {
        $result .= $str[rand(0, count($str)-1)];
    }

    return $result;
} 
ソース内、赤字の部分でランダムな文字列を生成する元の文字の配列を定義しています。

この部分で設定した文字の中からランダムに抽出した文字を使いますので、ここを調整することで任意の文字の中でランダムな文字列を生成することができます。

例えば半角英字のみでランダムな文字列を生成する、「a~e」の文字だけで構成するランダムな文字列を生成する。などのような変則的な文字列を生成することもできます。