Problem mit Farbverlaufscript

  • Problem mit Farbverlaufscript

    Hallöchen

    und zwar hab ich ein kleines Problem mit diesem Farbverlaufscript...

    Quellcode

    1. <?
    2. $text = "<br>huhu<b> ".create_gradient("$tester","cccccc","00ff00")." meldet sich ($grund)</b>";
    3. echo $text;
    4. function create_gradient($TEXT,$color1,$color2)
    5. {
    6. $abfragsd = "SELECT * FROM icc_zaehler WHERE uid = '1'";
    7. $abfragesd = mysql_query($abfragsd);
    8. while ($rowsd = mysql_fetch_object($abfragesd)) {
    9. $fverlauf= $rowsd->fverlauf;
    10. }
    11. if ($fverlauf) {
    12. }else{
    13. $color2 = $color1;
    14. }
    15. $steps=strlen($TEXT);
    16. $r1 = hexdec(substr($color1, 0, 2));
    17. $g1 = hexdec(substr($color1, 2, 2));
    18. $b1 = hexdec(substr($color1, 4, 2));
    19. $r2 = hexdec(substr($color2, 0, 2));
    20. $g2 = hexdec(substr($color2, 2, 2));
    21. $b2 = hexdec(substr($color2, 4, 2));
    22. $s = array($r1,$g1,$b1);
    23. $e = array($r2,$g2,$b2);
    24. $h=strlen($TEXT);
    25. for ($i = 0; $i<$h; $i++) {
    26. $c1 = max(0,$s[0]-((($e[0]-$s[0])/-$h)*$i));
    27. $c2 = max(0,$s[1]-((($e[1]-$s[1])/-$h)*$i));
    28. $c3 = max(0,$s[2]-((($e[2]-$s[2])/-$h)*$i));
    29. $letter=$TEXT[$i];
    30. echo "<font style=\"color:rgb(".round($c1,0 ).", ".round($c2, 0).", ".round($c3,0 ).");\">$letter</font>";
    31. }
    32. }
    Alles anzeigen


    und zwar setzt er es mir nicht an die stelle wo ich es gerne haben möchte ...

    statt

    -huhu tester meldet sich (Arbeitender weise..)-

    macht er daraus

    tester
    huhu meldet sich (Arbeitender weise..)

    vielleicht kann mir einer da helfen...

    greets
    Toxic
  • dann hast du das return an falscher Stelle eingebaut.

    so muss es aussehen:

    Quellcode

    1. $ausgabe = '';
    2. for ($i = 0; $i<$h; $i++) {
    3. ...
    4. $ausgabe .= "<font style=\"color:rgb(".round($c1,0 ).", ".round($c2, 0).", ".round($c3,0 ).");\">$letter</font>";
    5. }
    6. return $ausgabe;


    ganz gängig ist es auch mit Ausgabebuffern zu arbeiten

    Quellcode

    1. ob_start(); // vor dem ersten echo
    2. for ($i = 0; $i<$h; $i++) {
    3. ...
    4. echo "<font style=\"color:rgb(".round($c1,0 ).", ".round($c2, 0).", ".round($c3,0 ).");\">$letter</font>";
    5. }
    6. $content = ob_get_contents(); // nach dem letzten echo
    7. ob_end_clean();
    8. return $content;