ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで文字列をランダムに生成するいくつかの方法のまとめ

PHP_PHP チュートリアルで文字列をランダムに生成するいくつかの方法のまとめ

WBOY
WBOYオリジナル
2016-07-13 16:57:45680ブラウズ

ランダムなパスワードの生成については以前に説明しました。ここで、ランダムな文字列を生成するためによく使用される関数をいくつか紹介します。もちろん、システムに付属している関数もありますが、それらは比較的単純です。

mt_rand関数

この場合、いくつかの乱数を返します:

コードは次のとおりです コードをコピー

echo(mt_rand());
echo(mt_rand());
echo(mt_rand(10,100));
?>
出力は次のようになります:

3150906288
513289678
35

mt_rand 関数の例を見てみましょう。

コードは次のとおりです コードをコピー

関数ロール () {
mt_rand(1,6) を返す
}

エコーロール();

関数ロール ($sides) {
return mt_rand(1,$sides);

}
echo roll(6); // 6 面体のサイコロを振る
echo roll(10); // 10 面体のサイコロを振る
echo roll(20); // 20 面のサイコロを振る

上記では、文字や数字と文字ではなく、単純な純粋な数値のみを生成できます。次に、カスタム関数を使用する必要があります

コードは次のとおりです コードをコピー

関数 genRandomString($len) {
$chars = 配列(
「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、
「l」、「m」、「n」、「o」、「p」、「q」、「r」、「s」、「t」、「u」、「v」、
「w」、「x」、「y」、「z」、「A」、「B」、「C」、「D」、「E」、「F」、「G」、
「H」、「I」、「J」、「K」、「L」、「M」、「N」、「O」、「P」、「Q」、「R」、
「S」、「T」、「U」、「V」、「W」、「X」、「Y」、「Z」、「0」、「1」、「2」、
「3」、「4」、「5」、「6」、「7」、「8」、「9」
);

$charsLen = count($chars) - 1;

shuffle($chars); // 配列をシャッフルします

$output = "";
for ($i=0; $i<$len; $i++) {
$output .= $chars[mt_rand(0, $charsLen)];
}

$output を返します;
}

$str = genRandomString(25);
$str .= "
";
$str .= genRandomString(25);
$str .= "
";
$str .= genRandomString(25);
$str .= "

";

エコー $str;
?>


プログラムの出力は次のとおりです:


DmLVAmDkEJz8wHXRCNwzvANlB
BILZSA19YyuSVcR17KrrZsOKO
inlWlQF0GSabN3l589y9s16Gg

デフォルトで生成されるランダム文字列の長さは 5 で、生成される文字列には数字 + 大文字が含まれます

機能機能:

1. 指定された長さのランダムな文字列を生成します

2. 生成されるランダム文字列の複雑さを柔軟に選択します

コードは次のとおりです コードをコピー

/**
+------------------------------------------------ ----------
* ランダムな文字列を生成します
+------------------------------------------------ ----------
* @param int $length 生成するランダム文字列の長さ
* @param string $type ランダムなコードの種類: 0、数字 + 大文字; 2、大文字; -1、数字 + 大文字および小文字 + 特殊文字 +------------------------------------------------ ----------
* @戻り文字列
+------------------------------------------------ ----------
​*/
関数 randCode($length = 5, $type = 0) {
$arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|" );
If ($type == 0) {
array_pop($arr);
$string = implode(",", $arr);
} else if ($type == "-1") {
$string = implode(",", $arr);
} その他 {
$string = $arr[$type];
}
$count = strlen($string) - 1;
for ($i = 0; $i $str[$i] = $string[rand(0, $count)];
$code .= $str[$i];
}
$code を返します;
}

1. a – z、A – Z、0 – 9、およびいくつかの特殊文字を含む文字配列 $chars をプリセットします

2. array_rand() を使用して、配列 $chars から $length 要素をランダムに選択します
3. 取得したキー名配列 $keys に従って、配列 $chars から文字を取り出し、文字列を連結します。この方法の欠点は、同じ文字が繰り返し取得されないことです。

コードは次のとおりですコードをコピー
関数 make_password( $length = 8 )

{
// パスワード文字セット。必要な文字を追加できます
$chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'、'q'、'r'、's'、
't'、'u'、'v'、'w'、'x'、'y'、'z'、'A'、'B'、'C'、'D'、
「E」、「F」、「G」、「H」、「I」、「J」、「K」、「L」、「M」、「N」、「O」、
「P」、「Q」、「R」、「S」、「T」、「U」、「V」、「W」、「X」、「Y」、「Z」、
「0」、「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」、「9」、「!」、
'@'、'#'、'$'、'%'、'^'、'&'、'*'、'('、')'、'-'、'_'、
'['、']'、'{'、'}'、'<'、'>'、'~'、'`'、'+'、'='、','、
'.'、';'、':'、'/'、'?'、'|');

// $chars 内の $length 配列要素のキー名をランダムに選択します

$keys = array_rand($chars, $length);

$パスワード = '';

for($i = 0; $i {
// $length 配列要素を文字列に連結します
$password .= $chars[$keys[$i]];
}

$password を返します;

}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631493.html技術記事ランダムなパスワードの生成については以前に説明しました。ここで、ランダムな文字列を生成するためによく使用される関数をいくつか紹介します。もちろん、システムに付属している関数もあります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。