Создание случайных цветов в PHP на основе строки - PullRequest
0 голосов
/ 14 апреля 2020

Я хотел бы создать предсказуемые / детерминированные c цвета на основе строки. Как и в случае предоставления двух строк одинакового значения будет генерировать один и тот же цвет. Вот мой текущий код:

mt_srand(bin2hex($file)); //Convert filename to hex and seed Mersenne Twister with it
echo str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);

Однако, это не похоже на работу. Есть идеи, как мне этого добиться?

1 Ответ

0 голосов
/ 14 апреля 2020

Что ж, действительно зависит от того, какие параметры вы хотите установить для формирования этого шестнадцатеричного кода. Существует множество способов сделать это sh.

Чтобы сделать это проще, я сделал следующее:

$str_u = unpack("C*", "Lorem ipsum dolor sit amet, consectetur adipiscing elit.");

    $byte_output = [0x00, 0x00, 0x00];

    $c = 0;
    foreach($str_u as $b)
    {
        $byte_output[$c % count($byte_output)] ^= $b; 
        $c++;
    }

    var_dump($byte_output);

По сути, проходя каждый байт в строке и выполнение XOR для каждого значения в массиве $ byte_output, но каждый байт в строке взаимодействует только с одним байтом в выводе.

Это даст вам последовательно одинаковые результаты для разных строк. Это простой параметр, который учитывает каждый символ в строке и сокращает его до заданного числа байтов. Тем не менее, вы можете использовать практически любой параметр, который вам нужен, если вы не включаете в него случайные функции.

...