Nice shoot
Highway of Life !
I did code something similar for me a while ago...
Here is the code to obtain a gradiented text, starting from a color, ending into another... even with random color capabilities.
Spoiler:
Code: Select all function gradient($text, $color1, $color2, $mode = 'random', $iterations = 10) { // // Returns text highlighted in random gradient colours // if ($mode == 'random') { $colors = load_random_colors(); } else { $colors = load_gradient_colors($color1, $color2, $iterations); } $text = trim(stripslashes($text)); $length = strlen($text); $result = ''; $color_counter = 0; $TAG_OPEN = false; for ( $i = 0; $i < $length; $i++ ) { $char = substr($text, $i, 1); if ( !$TAG_OPEN ) { if ( $char == '<' ) { $TAG_OPEN = true; $result .= $char; } elseif ( preg_match("#\S#i", $char) ) { $color_counter++; $result .= '<span style="color: ' . $colors[$color_counter] . ';">' . $char . '</span>'; $color_counter = ( $color_counter == $iterations ) ? 0 : $color_counter; } else { $result .= $char; } } else { if ( $char == '>' ) { $TAG_OPEN = false; } $result .= $char; } } return $result; } function rand_color() { $color_code = mt_rand(0, 255); if ($color_code < 16) { return ('0' . dechex($color_code)); } else { return dechex($color_code); } } function load_random_colors($iterations = 10) { $random_color = array(); for ( $i = 0; $i < $iterations; $i++ ) { $random_color[$i + 1] = '#' . rand_color() . rand_color() . rand_color(); } return $random_color; } function load_gradient_colors($color1, $color2, $iterations = 10) { $col1_array = array(); $col2_array = array(); $col_dif_array = array(); $gradient_color = array(); $col1_array[0] = hexdec(substr($color1, 1, 2)); $col1_array[1] = hexdec(substr($color1, 3, 2)); $col1_array[2] = hexdec(substr($color1, 5, 2)); $col2_array[0] = hexdec(substr($color2, 1, 2)); $col2_array[1] = hexdec(substr($color2, 3, 2)); $col2_array[2] = hexdec(substr($color2, 5, 2)); $col_dif_array[0] = ($col2_array[0] - $col1_array[0]) / ($iterations - 1); $col_dif_array[1] = ($col2_array[1] - $col1_array[1]) / ($iterations - 1); $col_dif_array[2] = ($col2_array[2] - $col1_array[2]) / ($iterations - 1); for ( $i = 0; $i < $iterations; $i++ ) { $part1 = round($col1_array[0] + ($col_dif_array[0] * $i)); $part2 = round($col1_array[1] + ($col_dif_array[1] * $i)); $part3 = round($col1_array[2] + ($col_dif_array[2] * $i)); $part1 = ($part1 < 16) ? ('0' . dechex($part1)) : (dechex($part1)); $part2 = ($part2 < 16) ? ('0' . dechex($part2)) : (dechex($part2)); $part3 = ($part3 < 16) ? ('0' . dechex($part3)) : (dechex($part3)); $gradient_color[$i + 1] = '#' . $part1 . $part2 . $part3; } return $gradient_color; }Example here:
http://www.icyphoenix.com/viewtopic.php?f=4&t=1604 Search for gradient in the page.
Code: Select all [gradient cols=#FF8866 cole=#336699 iterations=8]Text[/gradient]