Couleur aléatoire html (hexadecimal)

0/5 (6 avis)

Snippet vu 14 742 fois - Téléchargée 34 fois

Contenu du snippet

Ce code php génère un code de couleur aléatoire hexadecimal, c'est à dire utilisable en (x)html.
Il contient aussi une fonction permettant de trouver l'opposer d'une couleur html.

Vous pouvez donc générer une couleur aléatoire pour un fond, et son opposé pour le texte par dessus ;)

Source / Exemple :


<?php
function rand_hexcolor()
	{
	$color = dechex(mt_rand(0,16777215));
	$color = str_pad($color,6,'0');

	return $color;
	}

function inverse_hexcolor($color)
	{
	eval('$color = 0x'.$color.';');

	return sprintf('%x',(-(0xff000000 + $color) - 1));
	}
?>

A voir également

Ajouter un commentaire Commentaires
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
27 janv. 2005 à 20:39
Salut ;-)

remplaces ça :

function inverse_hexcolor($color)
{
$h = '0123456789abcdef';

$new_color = '';

for($i=0;$i<strlen($color);$i++)
{$new_color .= $h{15-strpos($h,$color{$i})};}

return $new_color;
}

par ça :

function inverse_hexcolor($color)
{
$h = '0123456789abcdef';

$new_color = '';
$taille=strlen($color);

for($i=0;$i<$taille;$i++)
{$new_color .= $h{15-strpos($h,$color{$i})};}

return $new_color;
}

a++
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 janv. 2005 à 21:18
l'hexa, c'est pas :

0123456789abcdef, mais :
0123456789ABCDEF
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
27 janv. 2005 à 21:53
ouais
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
27 janv. 2005 à 21:58
Le site même du W3C met les lettres hexadécimals en minuscules. Selon leurs conventions, mais je ne suis pas sûr, je crois que ça doit être en minuscule.
cs_winzou Messages postés 2 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 29 janvier 2005
29 janv. 2005 à 11:55
ouep, bien vu pour le strlen j'avais zappé.
Mais regarde plutot la nouvelle version, c'est plus mieux :p

Pour les lettres hexa, je les met en minuscule perso, en plus la fonction dechex les met en minuscules. Mais bon, un strtolower pour celui qui les veut en maj.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.