Restoration
1/30/2017 - 12:20 PM

PHPを使用して文字列をランダムに生成する

PHPを使用して文字列をランダムに生成する

引数に文字数を指定して生成する関数
0~9、a~z
までの文字を混同させて文字列を返します

<?php
function random_str($leg) {
    $key = '';
    $keys = array_merge(range(0, 9), range('a', 'z'));
 
    for ($i = 0; $i < $leg; $i++) {
        $key .= $keys[array_rand($keys)];
    }
    return $key;
}
echo random_str(20);
function generate_random_string($leg,$elem = false){
 
    if($leg <= 0){
        return '';
    }
 
    if($elem === false ){
        $elem = "abcdefghijklmnopqlstuvwxyz";
    }
 
    if(!preg_match('/\A[\x21-\x7e]+\z/',$elem)){
        die("Detect fraud string");
    }
 
    $chars = preg_split('//',$elem, -1,PREG_SPLIT_NO_EMPTY);
 
    $chars = array_unique($chars);
 
    mt_srand((double) microtime() * 100000000);
 
    $str = '';
    $maxIndex = count($chars) -1;
    for($i = 0; $i < $leg; $i++){
        $str .= $chars[mt_rand(0,$maxIndex)];
    }
 
    return $str;
}
$pass = generate_random_string(100,"RandStr");
echo $pass;

関数の第一引数に文字数を入れる
第二引数はa~zまでの文字列をふくむかの判別
デフォルトでは含むようになっている

##ランダムに文字列を生成する関数 第二引数に値をいれることで、自分の指定した文字列をランダムに生成される文字列として扱うことができる。

<?php
function generete_random_string($leg,$elem = false){
 
    if($leg <= 0){
        return '';
    }
 
    if($elem === false ){
        $elem = "abcdefghijklmnopqlstuvwxyz";
    }
 
    if(!preg_match('/\A[\x21-\x7e]+\z/',$elem)){
        die("Detect fraud string");
    }
 
    $chars = preg_split('//',$elem, -1,PREG_SPLIT_NO_EMPTY);
 
    $chars = array_unique($chars);
 
    mt_srand((double) microtime() * 100000000);
 
    $str = '';
    $maxIndex = count($chars) -1;
    for($i = 0; $i < $leg; $i++){
        $str .= $chars[mt_rand(0,$maxIndex)];
    }
 
    return $str;
}
$pass = generete_random_string(100,"RandStr");
echo $pass;