Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- /* Rainbow Text generator v0.1
- * Gives a different-colored text-shadow to each character in a string to match a rainbow pattern
- * i.e. Red -> Yellow -> Green -> Cyan -> Fuschia -> Red
- * Usage: echo rainbowText($longString);
- */
- function rainbowText($input) {
- $l = strlen($input);
- $r = 0;
- $g = 0;
- $b = 0;
- $rg = floor($l / 3);
- $sep = $rg / 2;
- $gb = ceil(2*$l / 3);
- $ret = '';
- for($i = 0; $i < $l; $i++) {
- if($i <= $rg) {
- // First third: Red to green
- if($i >= $sep) {
- $r = floor(255 * (1 - (($i-$sep)/$sep)));
- $g = 255;
- } else {
- $r = 255;
- $g = floor(255 * ($i/$sep));
- }
- $b = 0;
- } elseif($i <= $gb) {
- // Green to blue
- $r = 0;
- if($i >= ($rg + $sep) ) {
- $g = floor(255 * (1 - (($i-($rg + $sep))/($gb-($rg + $sep)))) );
- $b = 255;
- } else {
- $g = 255;
- $b = floor(255 * (1 + (($i-($rg + $sep))/($gb-($rg + $sep)))) );
- }
- } else {
- // Finally: Blue to red
- $g = 0;
- if($i >= ($gb + $sep) ) {
- $b = floor(255 * (1 - (($i-($gb + $sep))/($l-($gb + $sep)))) );
- $r = 255;
- } else {
- $b = 255;
- $r = floor(255 * (1 + (($i-($gb + $sep))/($l-($gb + $sep)))) );
- }
- }
- $ret .= "<span style=\"text-shadow: rgb({$r}, {$g}, {$b}) 0px 1px 1px;\">{$input[$i]}</span><!--\n-->";
- }
- return $ret;
- }
- ?>
- Not sure how useful this will be to anyone else.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement