Here's a simple function to generate a random string based on Alpha, Numeric, Nozero, MD5 and SHA1 types.
<?php
function random ($type = 'sha1', $len = 20)
{
if (phpversion() >= 4.2) mt_srand();
else
mt_srand(hexdec(substr(md5(microtime()), - $len)) & 0x7fffffff);
switch ($type) {
case 'basic':
return mt_rand();
break;
case 'alpha':
case 'numeric':
case 'nozero':
switch ($type) {
case 'alpha':
$param = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case 'numeric':
$param = '0123456789';
break;
case 'nozero':
$param = '123456789';
break;
}
$str = '';
for ($i = 0; $i < $len; $i ++) {
$str .= substr($param, mt_rand(0, strlen($param) - 1), 1);
}
return $str;
break;
case 'md5':
return md5(uniqid(mt_rand(), TRUE));
break;
case 'sha1':
return sha1(uniqid(mt_rand(), TRUE));
break;
}
}
//Available options are:
//basic
//alpha
//numeric
//nozero
//md5
//sha1
//Example:
echo random();
//51d8b448ad289a8b2ff50219ddd8e67936f4a555
echo random('numeric', '80');
//13969129691829473350905578362711065674284852774190392980483833740698116793831161
?>
Example:
random('numeric', '80');
Available options are:
- basic
- alpha
- numeric
- nozero
- md5
- sha1