Jane (04.11.2011/18:15)Зря я прочел этот пост
я вот не знаю, как сгенерировать последовательность промежуточных цветов между 2мя цветами, это то же самое, что интерполяция, используемая графическими редакторами? Надо погуглить...
Вобщем вот что получилось за 20 минут (ОСТОРОЖНО! быдлокод).
/**
* Градиен текста.
*
* @param string $text Текстовая строка.
* @param string $cR Начальный цветовой код (в формате 00AAFF)
* @param string $cR Конечный цветовой код (в формате FFAA00)
*/
function gradient($text, $cL, $cR) {
$textLen = mb_strlen($text);
$array = array(
'A' => '10',
'B' => '11',
'C' => '12',
'D' => '13',
'E' => '14',
'F' => '15',
);
$return = '';
for ($x = 0; $x < $textLen; $x++) {
$color = '';
for ($y = 0; $y < 6; $y++) {
$color .= strtr((int)(strtr($cL{$y}, $array) + ((strtr($cR{$y}, $array) - strtr($cL{$y}, $array)) / $textLen * $x)), array_flip($array));
}
$return .= '<span style="color:#' . $color . '">' . $text{$x} . '</span>';
}
return $return;
}
/* Использование */
echo gradient('OLOLOLOLOLOLOLO', 'FF0000', '00FF00') . '<br />';
echo gradient('OLOLOLOLOLOLOLO', 'FFDD00', '66AA00') . '<br />';
echo gradient('OLOLOLOLOLOLOLO', '00BBFF', 'FFAA00');