*/
/**
- * Class for generating a 24-character random ID string. This string uses all
+ * Class for generating a 23-character random ID string. This string uses all
* characters in the class [-_0-9a-zA-Z].
*
* <code>
* <?php
*
- * $rid = (string)new Horde_Support_Randomid();
+ * $id = (string)new Horde_Support_Randomid();
*
* ?>
* </code>
*
* @var string
*/
- private $_rid;
+ private $_id;
/**
* New random ID.
*/
public function __construct()
{
- $this->generate();
+ $this->_id = $this->generate();
}
/**
*/
public function generate()
{
- // Base64 can have /, +, and = characters. Restrict to URL-safe
- // characters.
- $this->_rid = str_replace(array('/', '+', '='), array('-', '_', ''), base64_encode(pack('I', mt_rand()) . pack('H*', str_replace('.', '', uniqid('', true)) . dechex(getmypid()))));
+ // Base64 can have /, +, and = characters. Restrict to URL-safe characters.
+ return str_replace(array('/', '+', '='), array('-', '_', ''), base64_encode(
+ pack('II', mt_rand(), crc32(php_uname('n'))) . pack('H*', uniqid() . dechex(getmypid()))
+ ));
}
/**
*/
public function __toString()
{
- return $this->_rid;
+ return $this->_id;
}
-
}