Afficher mots d'une phrase de couleurs differentes

Fermé
xnicekiller - Modifié par xnicekiller le 4/02/2015 à 15:40
Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017 - 4 févr. 2015 à 22:33
Bonjour, j'aurai besoin d'aide ,je suis en train de faire un logiciel qui me permet d'afficher une phrase (que l'utilisateur a rentré) avec chaque mot de couleurs différentes(des couleurs que j'ai déjà définies). J'ai décider d'utiliser la fonction EXPLODE pour pouvoir séparer les mots dans la chaîne de caractère, .. Apres j'ai un petit problème , je ne sais plus quoi faire après.. Est-ce que je dois faire une boucle pour pouvoir rejeter autant de fois le changement de couleurs qu'il y a de mots dans ma phrase ? SVP pouvez-vous m'éclairer un peu plus .. Voici mon début de logiciel

<?php
$phrase = $_POST["phrase"];
$pieces = explode(" ", $phrase);
$couleur="FF8101010";
$couleur1="1010810FF";
$couleur2="101010101010";
$couleur3="410810810";
$couleur4="8101010FF";
$couleur5="10101010810";
$couleur6="FF10101010";
$couleur7="FFFBF10";

echo $pieces[0] . " ";
{ $input = array($couleur,$couleur1,$couleur2,$couleur3,$couleur4,$couleur5,$couleur6,$couleur7);
$hasard = rand (0,7);
echo ("<font color=\"" . $input[$hasard] . "\">" . $pieces[0] . " </font>");
$separe="";
}

echo $pieces[1] . " ";
echo $pieces[2] . " ";
echo $pieces[3] . " ";
echo $pieces[4] . " ";
echo $pieces[5] . " ";
echo $pieces[6] . " ";
echo $pieces[7] . " ";

<?






1 réponse

Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017 24
4 févr. 2015 à 16:47
Salut !
Ce que tu as fait marche presque mais il te manque un foreach.
Au lieu de lui dire
echo ("<font color=\"" . $input[$hasard] . "\">" . $pieces[0] . " </font>"); 

Soit "affiche moi la première case de $pieces", il faut que tu lui fasse afficher chaque mot l'un après l'autre en parcourant (grâce à un foreach) le tableau $pieces.
Pour chaque $value contenu dans le tableau $pieces tu recommences ton opération, et donc chaque mot sera d'une couleur aléatoire.

De plus tu as marqué

echo $pieces[1] . " ";
echo $pieces[2] . " ";
echo $pieces[3] . " ";
echo $pieces[4] . " ";
echo $pieces[5] . " ";
echo $pieces[6] . " ";
echo $pieces[7] . " ";

mais tu ne peux pas savoir combien de mots contiendra ton tableau $pieces, c'est peut-être 7 mais pourquoi pas 12 ou 52... donc c'est à ce moment là que tu dois penser à faire une boucle ^^ .


Essaye ceci :


foreach($pieces as $value)
{
$input=array($couleur,$couleur1,$couleur2,$couleur3,$couleur4,$couleur5,$couleur6,$couleur7);
$hasard = rand (0,7);
echo ("<font color=\"" . $input[$hasard] . "\">" . $value . " </font>");
}
0
Merci merci voila le programme marche nickel ,je m'etais deja un peu renseigné , on m'avait parlé de la fonction FOREACH mais j'ai jamais su la placé correctement dans mon logiciel, encore un gros merci :)
0
Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017 24
4 févr. 2015 à 22:33
Si ma réponse te suffit, n'oublie pas de passer le sujet en "Résolu", c'était avec plaisir :)
0