• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Jeder Buchstabe in einer anderen Farbe

Status
Für weitere Antworten geschlossen.

Ay Chiquita

Neues Mitglied
Hallo Jungs!


Ich wollte Euch mal fragen, ob es mit PHP zu realisieren ist, dass ich mittels eines Scriptes irgendeinen Text farblich "umgestalte":
Ich habe einen Text und möchte jeden einzelnen Buchstaben farblich anders gestalten. So hätte ich z.B. 20 "Grundfarben" und das Script würde automatisch in immer derselben Farbreihenfolge Buchstaben für Buchstaben eine andere Farbe geben.

Das in HTML per Hand zu schreiben ist mir zu mühselig, deswegen wende ich mich an Euch!

In etwa soetwas stelle ich mir eben vor:


<html>
<font style="color:red;">H</font>
<font style="color:green;">A</font>
<font style="color:yellow;">L</font>
<font style="color:blue;">L</font>
<font style="color:red;">0</font>
<font style="color:green;">!</font>
</html>


Wisst Ihr da eine Lösung?


Beste Grüße, Fabian
 
Werbung:
Ich würd's so machen
PHP:
<?php
$colors = Array("#ff0000","#00ff00","#0000ff","#ffff00","#00ffff","#ff00ff");
$string = "Hallo Welt! (mal wieder dieses ausgenutzte Beispiel)";
$newstring = "";
for ($i=0;$i<strlen($string);$i++) {
  $buchstabe = substr($string,$i,1);
  if($buchstabe == " ") {
    $newstring .= " ";
    continue;
  }
  $newstring .= '<span style="color:'.current($colors).';">'.$buchstabe.'</span>';
  if(next($colors) === false) reset($colors);
}
echo $newstring;
?>

Habs nicht getestet, sollte aber funktionieren
 
Zuletzt bearbeitet:
Ach Du meine Güte ...
Ich hätte nicht gedacht, dass es für solch ein spezielles Problem eine Lösung gibt - Tausen Dank, Frank!
 
Werbung:
Hab hier auch noch ne schicke Lösung :)

Kannst angeben zwischen welchen Werten die Farbe schwanken darf.

Also das von Frank ist fest also der kriegt immer die gleiche Farb reinvolge und meins ist zufällig :p

PHP:
<?php

$string = "Hallo du da. Wie gehts dir? :)";

function html_color($r, $g, $b)
{
    $rgb  = '#';
    $rgb .= (strlen(dechex($r)) < 2) ? '0' . dechex($r) : dechex($r);
    $rgb .= (strlen(dechex($g)) < 2) ? '0' . dechex($g) : dechex($g);
    $rgb .= (strlen(dechex($b)) < 2) ? '0' . dechex($b) : dechex($b);
    return strtoupper($rgb);
}

function highlight($string, $r, $g, $b)
{
    $string = strip_tags($string);
    $laenge = strlen($string);
    $new = null;
    
    for($i = 0; $i < $laenge; $i++)
    {
        if($string[$i] != ' ')
        {
            $color = html_color(mt_rand($r[0], $r[1]),
                                mt_rand($g[0], $g[1]),
                                mt_rand($b[0], $b[1]));
                                
            $new .= '<span style="color: ' . $color . ';">'.
                    $string[$i] .
                    '</span>';
        }
        else
        {
            $new .= ' ';
        }
    }
    return $new;
}

echo highlight($string,
               array(0,255),
               array(0,0),
               array(0,0));

echo '<br />';

echo highlight($string,
               array(0,0),
               array(0,0),
               array(0,255));

echo '<br />';

echo highlight($string,
               array(200,255),
               array(100,200),
               array(0,100));

echo '<br />';

echo highlight($string,
               array(0,100),
               array(100,200),
               array(200,255));
?>

MFG Miah ^^
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben