/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
dechex()
Fra : Mickey


Dato : 24-03-01 01:20

Jeg fandt lige på at lave en kode der sku gi en tilfældig farvekode.
Jeg har prøvet to udgaver:

$textcol = dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));
$textcol .= dechex(rand(0,255));

og:

$textcol1 = dechex(rand(0,255));
$textcol2 = dechex(rand(0,255));
$textcol3 = dechex(rand(0,255));
$textcol4 = dechex(rand(0,255));
$textcol5 = dechex(rand(0,255));
$textcol6 = dechex(rand(0,255));
$textcol =
$textcol1.$textcol2.$textcol3.$textcol4.$textcol5.$textcol6;

istedet for en 6 cifret hex-kode gir de begge en 10-12 cifret
decimalkode.

Hvorfor ?


--
Mickey



 
 
Nezar Nielsen (24-03-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 24-03-01 01:59

"Mickey" <news002@susie.dyndns.dk> wrote in message
news:lLRu6.5221$Ov.308996@news010.worldonline.dk...
> Jeg fandt lige på at lave en kode der sku gi en tilfældig farvekode.
> Jeg har prøvet to udgaver:

[som begge to lægger 6 hextal oveni hinanden = potentielt 12 tegn (start 0
vises ikke, derfor risikerer du at få nogle der er på færre tegn end 12)]

Prøv sådan:

$textcol = dechex(rand(0,255)); #r
$textcol .= dechex(rand(0,255)); #g
$textcol .= dechex(rand(0,255)); #b
echo sprintf("%06s",$textcol).'<br>';

--
Mvh. Nezar Nielsen
wwf fan.



Peter Brodersen (24-03-2001)
Kommentar
Fra : Peter Brodersen


Dato : 24-03-01 14:21

On Sat, 24 Mar 2001 01:59:15 +0100, "Nezar Nielsen" <tumpen@fez.dk>
wrote:

>$textcol = dechex(rand(0,255)); #r
>$textcol .= dechex(rand(0,255)); #g
>$textcol .= dechex(rand(0,255)); #b
>echo sprintf("%06s",$textcol).'<br>';

Den er da heller ikke helt god - hvis #r er 1, #g er 0 og #b er 0, vil
der komme leading 0'er i begyndelsen, og det vil blive til "000100" i
stedet for "010000".


--
- Pede
Professionel nørd

Nezar Nielsen (24-03-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 24-03-01 18:10

"Peter Brodersen" <professionel@nerd.dk> wrote in message
news:sn7pbt89kru69t3bq7l9h6640uemmp87dt@news.worldonline.dk...
> On Sat, 24 Mar 2001 01:59:15 +0100, "Nezar Nielsen" <tumpen@fez.dk>
> wrote:
>
> >$textcol = dechex(rand(0,255)); #r
> >$textcol .= dechex(rand(0,255)); #g
> >$textcol .= dechex(rand(0,255)); #b
> >echo sprintf("%06s",$textcol).'<br>';
>
> Den er da heller ikke helt god - hvis #r er 1, #g er 0 og #b er 0, vil
> der komme leading 0'er i begyndelsen, og det vil blive til "000100" i
> stedet for "010000".

Men det er stadig en nogenlunde tilfældig 6-cifret hex-kode ;)

aj, du har selvfølgelig ret, så sprintf("%06X",rand(0,16777215)) da..


--
Mvh. Nezar Nielsen
Professionel sesam-snack-spiser.




Rasmus Ebler Simonse~ (24-03-2001)
Kommentar
Fra : Rasmus Ebler Simonse~


Dato : 24-03-01 02:04

> $textcol = dechex(rand(0,255));
[snip]
> istedet for en 6 cifret hex-kode gir de begge en 10-12 cifret
> decimalkode.
>
> Hvorfor ?

prøv med 15 istedet for 255. Et hex ciffer er mellem 0 og 15 begge inkl.

Husk i øvrigt at give rand et seed. F.eks. :

srand ((double) microtime() * 1000000);
$textcol = dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));
$textcol .= dechex(rand(0,15));


/rasmus



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste