/    Sign up×
Community /Pin to ProfileBookmark

How do I use a for loop to step thru a hex range and display color ?

Hi,

I am trying to display different colors in sequence
in batches of 100 at a time.

Reason is to make selecting a color quicker.

I want to be able to input a starting hex number for the color
and then the script should increment logically from that point

I have started this but got stuck on the
hexedecimal iteration …

This is my code

[code=php]<?php
/* color_test.php
*/
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Auto Colour</title>
<meta name=”keywords” content=”Auto Colour”>
<meta name=”description” content=”Auto Colour”>
<meta name=”revisit-after” content=”2 days”>
<meta name=”robots” content=”all, index, follow”>
<meta name=”author” content=”SimplePage.net”>
<meta name=”Rating” content=”General”>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
<link rel=”shortcut icon” href=”/sys_images/favicon.png” type=’image/png’>
<link rel=”icon” href=”/sys_images/favicon.png” type=’image/png’>

<style type=”text/css” media=”all”>
<?php
echo ”
section{
display:block;
position:absolute;
top:20px;
left:100px;
width:400px;
background:white;
}

</style>”;
?>
</head>
<body>

<?php

for ($i = 0; $i < 100 $i=$i++) {

$top_pos1 = (($i-1)*20)+20;
$top_pos1px = $top_pos1.’px’;

$hex1_start_1 = ‘B’; // THESE WOULD BE PART OF INPUT START COLOR HEX
$hex1_start_2 = ‘3’;

$hex2_start_1 = ‘B’; // THESE WOULD BE PART OF INPUT START COLOR HEX
$hex2_start_2 = ‘3’;

$hex3_start_1 = ‘B’; // THESE WOULD BE PART OF INPUT START COLOR HEX
$hex3_start_2 = ‘3’;

$col_hex1a = $hex1_start_2 + // some function of $i or a diff for loop var ??

/// I NEED TO DO THE ABOVE FOR EACH OF THE 3 PARTS OF THE COLOR. !!

$col_hex1 = $col_hex1a.$col_hex1b; // runs thru 0-9 then A-H
$col_hex2 = $col_hex2a.$col_hex2b;
$col_hex3 = $col_hex3a.$col_hex3b;

$hex_color = ‘#’.$col_hex1.$col_hex2.$col_hex3;

echo ”
<section style=”top:$top_pos1px;”>
<span style=”margin:0 0 0 40px; color:$hex_color;font-size:24px;”>This is color no:$i $hex_color</span>
</section>
“;
}
?>
</body>
</html>
[/code]

So the hard bit is incrementing 0-H on one set of the number hex code
then incrementing the second set etc.

Hmmm . ..

Would appreciate some ideas on how I can do this ?

Thanks.

.

to post a comment
PHP

4 Comments(s)

Copy linkTweet thisAlerts:
@NogDogNov 21.2013 — Just a proof of concept to show how you can use [s]printf() to handle the output, while working with decimal values:

[code=php]
<?php

$hexValue = '00CC99';
$decValue = hexdec($hexValue);
$min = max(0, $decValue - 30);
$max = min(hexdec('FFFFFF'), $decValue + 30);
foreach(range($min, $max) as $color) {
printf('%06X'.PHP_EOL, $color);
}
[/code]
Copy linkTweet thisAlerts:
@jeddikauthorNov 21.2013 — That's Great.

so I have done :
[code=php]
$hexValue = '00CC99';
$decValue = hexdec($hexValue);

for ($i=0; $i<=100; $i++){

$x = $decValue+$i;
$y = dechex($x);

if( strlen($y) == 6){
}
if( strlen($y) == 4){
$y = '00'.$y;
}
if( strlen($y) == 2){
$y = '0000'.$y;
}

}
[/code]

Which is pretty much there, I think ?


Thanks again.


.
Copy linkTweet thisAlerts:
@bionoidNov 21.2013 — Just a variant of what you had done, jeddik:

[code=php]$hexValue = '00CC99';
$decValue = hexdec($hexValue);

for ($i = 0; $i <= 100; ++$i){

$y = str_pad(dechex($decValue + $i), 6, 0, STR_PAD_LEFT);

}[/code]
Copy linkTweet thisAlerts:
@jeddikauthorNov 22.2013 — Thanks.

Actually, I realised that I needed that when my script

started outputting only 3 digit results - I had not allowed for that.

Now it is "padded up" to 6 - it is better ?
×

Success!

Help @jeddik spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.18,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...