Мне нужна логика или какой-то пакет с функциями для генерации случайной строки с определенной кодировкой без использования базовой функции random_bytes и т. д.
Что-то вроде этого:
$randomLine = random_string($length = 10, $encoding = 'UTF-16');
Вам нужно, чтобы строка была случайным образом распределена по всем символам в данной кодировке? Или вы могли бы сгенерировать случайную строку в более простой кодировке (например, ASCII), а затем преобразовать ее? Потому что с первым будет значительно сложнее. Также без использования базовой функции random_bytes и т. д. - почему? Потому что, опять же, это будет намного сложнее. Какой жестяная банка вы используете?
@iainn Мне нужна эта конкретная функция для жестких тестов моей службы






Если у вас php 7.2+, вы можете использовать mb_chr, например
<?
$max = 10;
$out = '';
$encoding = 'UTF-16';
for ($i = 0;$i<$max;$i++) {
if ($s = mb_chr(rand(1,1114112), $encoding)) {
$out .= $s;
}
}
echo $out;
См. http://sandbox.onlinephpfunctions.com/code/a4d39412005473231317758ca5d2fc8d4ad0b27b
См. en.wikipedia.org/wiki/Code_point. Имеется 1114112 кодовых точек Unicode.
Есть ли варианты для php с версией ниже 7.2?
Посмотрите на stackoverflow.com/questions/1365583/…, а именно на второй ответ (полифилл для mb_chr)
Для чего именно это будет использоваться?