{PHP}
Jeremy_me
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
Jeremy_me Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Jeremy_me Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'Ai deux variable. Dison pour l'exemple :
$v1 = "11111111";
$v2 = "11111211";
J'aimerais pouvoir afficher la deuxième variable avec les différence en rouge.
Malheureusement, je n'ai absolument aucune idée du comment faire ça.
Je vous remercie de votre aide précieuse!
Jeremy
J'Ai deux variable. Dison pour l'exemple :
$v1 = "11111111";
$v2 = "11111211";
J'aimerais pouvoir afficher la deuxième variable avec les différence en rouge.
Malheureusement, je n'ai absolument aucune idée du comment faire ça.
Je vous remercie de votre aide précieuse!
Jeremy
A voir également:
- {PHP}
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
$final = ""; for ($i = 0; $i< strlen($v1); $i++) { if ($v1[$i] != $v2[$i]) $final = $final . "<font color="red">".$v2[$i]."</font>"; else $final = $final . $v2[$i]; }
Ce code n'est pas optimal car il répète les balises si plusieurs caractères sont successivement différents.
Il part également du principe que $v1 et $v2 sont de même longueur.
Mais ça peut être une piste...
Merci beaucoup. et surtout, merci d'avoir précisé les limitations! Je vais essayer ca, je t'en donne des nouvelles :)
Bonne nuit! (Ici il est 00:56 :P )
Bonne nuit! (Ici il est 00:56 :P )
Bonjour Jeremy_me et Jibe,
Jibe a répondu, et j'ai joué à faire + joli (pas de répétition de balises)
Voici le code que ça génère :
Jibe a répondu, et j'ai joué à faire + joli (pas de répétition de balises)
<HTML> <HEAD> <TITLE>Page essai PHP</TITLE> </HEAD> <STYLE> SPAN.V {color: #00ff00} SPAN.R {color: #ff0000} </STYLE> <BODY> <H1>Petite page de comparaison de deux chaines en PHP</H1> Nous sommes le <?php echo Date("j/m/Y"); ?> <P> <?php // Un petit tableau pratique pour les couleurs à afficher : $styleVertEtRouge = Array('V', 'R'); $var1 = "11111111"; $var2 = "11123141"; // En principe, on devrait aussi penser au cas ou les 2 chaînes n'on pas la même taille // ce qui n'est pas fait ici (c'est un cas d'école) $s1 = strlen($var1); $s2 = strlen($var2); echo "Comparaison de deux chaines :" . $var1 . " et "; // On doit différencier le cas du départ à caus du premier span, donc on prend -1 $precedant = -1; $courant = -1; for ($i = 0; $i < $s2; ++$i) { if ($var1[$i] == $var2[$i]) { $courant = 0; } else { $courant = 1; } if ($courant != $precedant) { if ($precedant != -1) { // ne doit pas être fait la première fois echo "</span>"; } // écrit le caractère dans la bonne couleur echo "<span class=" . $styleVertEtRouge[$courant] . ">" . $var2[$i]; $precedant = $courant; } else { echo $var2[$i]; } } echo "</span><P> terminé"; ?> </BODY> </HTML>
Voici le code que ça génère :
<HTML> <HEAD> <TITLE>Page essai PHP</TITLE> </HEAD> <STYLE> SPAN.V {color: #00ff00} SPAN.R {color: #ff0000} </STYLE> <BODY> <H1>Petite page de comparaison de deux chaines en PHP</H1> Nous sommes le 3/09/2009<P> Comparaison de deux chaines :11111111 et <span class=V>111</span><span class=R>23</span><span class=V>1</span><span class=R>4</span><span class=V>1</span><P> terminé</BODY> </HTML>