PHP: Random\Randomizer::getBytesFromString - Manual
(PHP 8 >= 8.3.0)
Random\Randomizer::getBytesFromString — Get random bytes from a source string
Description
public Random\Randomizer::getBytesFromString(string $string, int $length): string
The chance for a byte to be selected is proportional to its share
of the input string. If each byte occurs
the same amount of times, each byte is equally likely to be selected.
Parameters
Return Values
A string containing the requested number of random bytes taken from the input string.
Errors/Exceptions
-
If
stringis empty, a ValueError will be thrown. -
If the value of
lengthis less than1, a ValueError will be thrown. -
Any Throwables thrown by the Random\Engine::generate() method
of the underlying
Random\Randomizer::$engine.
Examples
Example #1 Random\Randomizer::getBytesFromString() example
<?php
$randomizer = new \Random\Randomizer();printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>
The above example will output something similar to:
3zsw04eiubcf82jd.example.com
Example #2 Generate a random code for multi-factor authentication
<?php
// The Secure engine is the default, but we make it explicit, because
// multi-factor codes are security sensitive.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());
echo
implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>
The above example will output something similar to:
Example #3 Select from a string with a non-uniform distribution
<?php
$randomizer = new \Random\Randomizer();
echo
$randomizer->getBytesFromString('aaaaabcdef', 20);
?>
The above example will output something similar to:
Found A Problem?
There are no user contributed notes for this page.