PHP: Hypertext Preprocessor (original) (raw)

Random\Randomizer::getBytesFromString

(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

string

The string from which the returned bytes are selected.

length

The length of the random string that should be returned in bytes; must be 1 or greater.

Return Values

A string containing the requested number of random bytes taken from the input string.

Errors/Exceptions

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.