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 {
}
/**
* Generate a random alpha-numeric string.
* Generate a random alpha or alpha-numeric string.
*
* Supported types: 'alnum' and 'alpha'.
*
* @param int $length
* @param string $type
* @return string
*/
public static function random($length = 16)
public static function random($length = 16, $type = 'alnum')
{
$pool = str_split('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 1);
$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++)
{
$value .= $pool[mt_rand(0, 61)];
$value .= $pool[mt_rand(0, $pool_length)];
}
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