Предлагаем ознакомиться с небольшой, но полезной PHP функцией, выводящий код цвета HEX в зависимости от содержимого строки. Данный скрипт может пригодиться, например, в оформлении списка пользователей без аватаров, списка сообщений или другом модуле.
Чтобы выделить пользователей, мы применили данный скрипт:
Добавляем PHP функцию:
function get_color($str){ $del_let = ['g','h','i','k','l','m','n','o','p','q','r','s','t','v','x','y','z']; $color = '#' . substr(str_replace($del_let, '', md5($str)), -6); return $color; }
Добавляем элемент у которого нужно изменить цвет:
Принцип работы функции заключается в получении MD5 хеша строки, удалении из него символов, неучавствующих в формировании HEX кода цвета, и обрезке колученного результата до 6 символов с конца или с начала строки (для второго варианта замените в функции "-6" на "0, 6").
Возможен второй вариант с использованием 10 предопределенных пользователем цветов:
function get_color($str){ $del_let = ['a','b','c','d','e','f','h','i','k','l','m','n','o','p','q','r','s','t','v','x','y','z']; $num = substr(str_replace($del_let, '', md5($str)), 0, 1); $colors = array('d22323','d27d23','d2b723','92d223','44d223','23d2b3','239ad2','234cd2','5823d2','9e23d2'); $color = '#' . $colors[$num]; return $color; }
Принцип работы данной функции аналогичен предыдущей за исключением того, что из MD5 хеша удаляются все буквы, а полученный результат обрезается до 1 символа с начала строки, тем самым в итоге значение переменной $num будет в пределах от 0 до 9 включительно.
Пример работы скрипта вы можете увидеть на странице http://muststyle.ru/sale
(цвет блока с промо-кодом, зависит от значения, например, "FULL20")