Commit 04fb8136 authored by Taylor Otwell's avatar Taylor Otwell

added support for alpha only random strings in Str::random.

parent 5ddab2bf
...@@ -47,20 +47,43 @@ class Str { ...@@ -47,20 +47,43 @@ class Str {
} }
/** /**
* Generate a random alpha-numeric string. * Generate a random alpha or alpha-numeric string.
*
* Supported types: 'alnum' and 'alpha'.
* *
* @param int $length * @param int $length
* @param string $type
* @return string * @return string
*/ */
public static function random($length = 16) public static function random($length = 16, $type = 'alnum')
{ {
$pool = str_split('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 1);
$value = ''; $value = '';
// -----------------------------------------------------
// Get the proper character pool for the type.
// -----------------------------------------------------
switch ($type)
{
case 'alpha':
$pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
default:
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
}
// -----------------------------------------------------
// Get the pool length and split the pool into an array.
// -----------------------------------------------------
$pool_length = strlen($pool) - 1;
$pool = str_split($pool, 1);
// -----------------------------------------------------
// Build the random string to the specified length.
// -----------------------------------------------------
for ($i = 0; $i < $length; $i++) for ($i = 0; $i < $length; $i++)
{ {
$value .= $pool[mt_rand(0, 61)]; $value .= $pool[mt_rand(0, $pool_length)];
} }
return $value; return $value;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment