Назад к ленте

20.01.2019

Цвет элемента в зависимости от содержимого строки, PHP скрипт

Рубрика: Разработчику

Предлагаем ознакомиться с небольшой, но полезной 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;
} 

 

Добавляем элемент у которого нужно изменить цвет:

<div style="background:<?php echo get_color('Ваш текст или переменная');?>;"> </div>

 

Принцип работы функции заключается в получении 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")

 

Смотрите также:

 
Разработка имиджевых сайтов, разработка фирменного стиля, брендбук