Geschrieben von compactdisc am 08.07.2005, 17:07

Hallo!

Ich habe mir zur Aufgabe gestellt, ein Script zu programmieren, welches schwarzen Text in *quietschebuntfarbenen* umwandelt.
Da mir dies so ziemlich gelungen ist, verfasse ich es nun hier in einem Tutorial :wink:

das Script:


<?

function rainbow($text) // neue Funktion namens rainbow($text); wird erstellt
{

// Die Farben können bei Bedarf natürlich auch ausgetauscht werden!
$farben = array("mediumblue","orangered","seagreen","turquoise","mediumslateblue","darksalmon","chartreuse","darkgoldenrod","darkmagenta");

/* Zerhackstückelt das String in einzelne Zeichen und speichert diese als Array ab */
$buchstaben = preg_split("/[.]{0}/",$text);

// -------------------------
$laenge = strlen($text); // Textlänge ermitteln
$laengestr = count($buchstaben) - 1; // Elemente des Arrays $laengestr
$anzfarben = count($farben) - 1; // Elemente des Arrays $anzfarben
// -------------------------

// -------------------------

$farbe = 0;

for($i=1; $i < $laenge; $i++) // Startet eine for-Schleife
{
$last = $laengestr - $i; // Letztes Array ausfindig machen

// Wenn Zeichen x, wie y, Leerzeichen sind, dann:
// $i inkrementieren
// $last dekrementieren
if($buchstaben[$i] == " " && $buchstaben[$last] == " ")
{
$i++;
$last--;
}

// Wenn Zeichen x ein Leerzeichen ist, und y kein Leerzeichen, dann:
// $i inkrementieren
// die Zeichen x und y formatieren
if($buchstaben[$i] == " " && $buchstaben[$last] != " ")
{
$i++;
$buchstaben[$i] = "<font color='". $farben[$farbe] ."'>". $buchstaben[$i] ."</font>";
$buchstaben[$last] = "<font color='". $farben[$farbe] ."'>". $buchstaben[$last] ."</font>";
}

// Wenn x, sowie y keine Leerzeichen sind, dann:
// die beiden Zeichen formatieren
if($buchstaben[$i] != " " && $buchstaben[$last] != " ")
{
$buchstaben[$i] = "<font color='". $farben[$farbe] ."'>". $buchstaben[$i] ."</font>";
$buchstaben[$last] = "<font color='". $farben[$farbe] ."'>". $buchstaben[$last] ."</font>";
}

$farbe++; // Inkrementieren der Variable $farbe

// Wenn $farbe das letzte Element des Farben-Array erreicht hat, dann
// wird $farbe zurück auf 0 gesetzt
if($farbe == $anzfarben)
{
$farbe = 0;
}

}

$rainbow = "";

// Jedes Element des Array $buchstaben in der Variable $rainbow abspeichern
foreach($buchstaben as $element)
{
$rainbow .= $element;
}

// $rainbow wird von der Funktion zurückgegeben
return $rainbow;
}

$text = "\"Muh, muh, muh\", ruft die bunte Kuh!";
$text2 = "Unser Hund heisst Luna!";

// Aufrufen der Funktion via print();
print(rainbow($text));
print("<br>". rainbow($text2));
print("<br>". rainbow("Hallo!"));

?>

Das war's auch schon!

Das Script könnt' ihr unter http://compactdisc.pyrokar.lima-city.de/regenbogen2.php im Einsath betrachten^^

cd

Bewertung Anzahl
5
100,0 %
4 Bewertungen