PHP 8.3.21 Released!

Random\Randomizer::shuffleBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleBytesObtém uma permutação byte a byte de uma string

Descrição

public Random\Randomizer::shuffleBytes(string $bytes): string

Retorna uma permutação uniformemente selecionada dos bytes de entrada.

Cada permutação possível dos bytes de entrada tem a mesma probabilidade de ser retornada.

Parâmetros

bytes

A string cujos bytes são embaralhados.

A string de entrada não será modificada.

Valor Retornado

Uma permutação dos bytes do parâmetro bytes.

Erros/Exceções

Exemplos

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

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

// Embaralhar bytes em uma string:
echo "«", $r->shuffleBytes("PHP is great!"), "»\n";
?>

O exemplo acima produzirá algo semelhante a:

« ga rHs!PPiet»

Exemplo #2 O embaralhamento byte a byte quebra os caracteres Unicode

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

$unicode = "🍎, 🥝, 🍌, 🍑, 🍇";
$shuffled = $r->shuffleBytes( $unicode );

// O embaralhamento byte a byte de caracteres não ASCII os destrói,
// resultando em sequências inválidas (indicadas pelo caractere
// de substituição Unicode) ou até mesmo caracteres totalmente
// diferentes aparecendo na saída.
echo "Original: ", $unicode, "\n";
echo
"Embraralhado: «", $shuffled, "»\n";
echo
"Bytes embaralhados: ", bin2hex($shuffled), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Original: 🍎, 🥝, 🍌, 🍑, 🍇
Shuffled: «� ��,�����🍟,� �� �, �,��»
Shuffled Bytes: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d
adicione uma nota

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

up
1
okerem@github
1 year ago
For a unicode-safe shuffling;

<?php
$r
= new \Random\Randomizer();
$s = join($r->shuffleArray(mb_str_split($string)));
To Top