# Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString — Renvoie des octets aléatoires à partir d'une chaîne

### Description

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

Génère une chaîne contenant des octets aléatoires uniformément sélectionnés de la `string` d'entrée avec la `length` demandée.

La chance pour un octet d'être sélectionné est proportionnelle à sa part de la `string` d'entrée. Si chaque octet se produit le même nombre de fois, chaque octet a la même probabilité d'être sélectionné.

### Liste de paramètres

`string`

  La chaîne de caractères d'entrée à partir de laquelle les octets retournés sont sélectionnés.

`length`

  La longueur de la chaîne aléatoire chaîne de caractères qui doit être retournée en octets; doit être `1` ou plus.

### Valeurs de retour

Une chaîne de caractères contenant le nombre demandé d'octets aléatoires pris dans l'entrée `string`.

### Erreurs / Exceptions

- Si `string` est vide, une ValueError sera lancée.
- Si la valeur de `length` est inférieure à `1`, une ValueError sera lancée.
- Tout Throwables lancé par la méthode Random\Engine::generate() du `Random\Randomizer::$engine` sous-jacent.

### Exemples

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

`<?php
$randomizer = new \Random\Randomizer();
printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>`

Résultat de l'exemple ci-dessus est similaire à :

    3zsw04eiubcf82jd.example.com

Exemple #2 Générer un code aléatoire pour l'authentification multi-facteurs

`<?php
// Le moteur Secure est le moteur par défaut, mais nous le rendons explicite, car
// les codes multi-facteurs sont sensibles à la sécurité.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());
echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>`

Résultat de l'exemple ci-dessus est similaire à :

    11551-80418-27047-42075

Exemple #3 Sélectionner à partir d'une chaîne avec une distribution non uniforme

`<?php
$randomizer = new \Random\Randomizer();
echo $randomizer->getBytesFromString('aaaaabcdef', 20);
?>`

Résultat de l'exemple ci-dessus est similaire à :

    fddacbeaaeaaacaaaaca

### Voir aussi

- Random\Randomizer::getBytes() - Renvoie des octets aléatoires