PHP Conference Kansai 2025

Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromStringObtém bytes aleatórios de uma string de origem

Descrição

public Random\Randomizer::getBytesFromString(string $string, int $length): string

Gera uma string contendo bytes aleatórios selecionados uniformemente a partir da string de entrada com o comprimento solicitado em length.

A chance de um byte ser selecionado é proporcional à sua participação na string de entrada. Se cada byte ocorrer a mesma quantidade de vezes, cada byte terá a mesma probabilidade de ser selecionado.

Parâmetros

string

A string da qual os bytes retornados são selecionados.

length

O comprimento da string aleatória que deve ser retornada em bytes; deve ser 1 ou maior.

Valor Retornado

Uma string contendo o número solicitado de bytes aleatórios retirados da string de entrada.

Erros/Exceções

Exemplos

Exemplo #1 Exemplo de Random\Randomizer::getBytesFromString()

<?php
$randomizer
= new \Random\Randomizer();

printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>

O exemplo acima produzirá algo semelhante a:

3zsw04eiubcf82jd.example.com

Exemplo #2 Gerando um código aleatório para autenticação multifator

<?php
// O mecanismo Secure é o padrão, mas o tornamos explícito porque
// códigos multifatoriais são sensíveis à segurança.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

echo
implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>

O exemplo acima produzirá algo semelhante a:

11551-80418-27047-42075

Exemplo #3 Selecionando de uma string com distribuição não uniforme

<?php
$randomizer
= new \Random\Randomizer();

echo
$randomizer->getBytesFromString('aaaaabcdef', 20);
?>

O exemplo acima produzirá algo semelhante a:

fddacbeaaeaaacaaaaca

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top