www.webdeveloper.com
Results 1 to 5 of 5

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

Hybrid View

  1. #1
    Join Date
    May 2006
    Posts
    246

    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

    PHP Code:
    <?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>
    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.



    .
    Last edited by jeddik; 11-21-2013 at 09:15 AM.
    Developers Choice Revealed:
    www.devchoice.info
    Which host has won, and why ?

  2. #2
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    22,288
    Just a proof of concept to show how you can use [s]printf() to handle the output, while working with decimal values:
    PHP Code:
    <?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);
    }
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  3. #3
    Join Date
    May 2006
    Posts
    246
    That's Great.

    so I have done :
    PHP Code:
    $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;
            }


    Which is pretty much there, I think


    Thanks again.


    .
    Last edited by jeddik; 11-21-2013 at 04:21 PM.
    Developers Choice Revealed:
    www.devchoice.info
    Which host has won, and why ?

  4. #4
    Join Date
    Dec 2011
    Location
    Centurion, South Africa
    Posts
    795
    Just a variant of what you had done, jeddik:

    PHP Code:
    $hexValue '00CC99';
    $decValue hexdec($hexValue);

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

        
    $y str_pad(dechex($decValue $i), 60STR_PAD_LEFT);


    JavaScript: Learn | Validate | Compact | bionoid

  5. #5
    Join Date
    May 2006
    Posts
    246
    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
    Developers Choice Revealed:
    www.devchoice.info
    Which host has won, and why ?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.15595 seconds
  • Memory Usage 3,045KB
  • Queries Executed 13 (?)
More Information
Template Usage (30):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (4)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (5)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (27):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./includes/functions_threadedmode.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (71):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • bbcode_parse_start
  • postbit_imicons
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates