GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Downloads
  • Documentation
  • Get Involved
  • Help
  • Getting Started
  • Introduction
  • A simple tutorial
  • Language Reference
  • Basic syntax
  • Types
  • Variables
  • Constants
  • Expressions
  • Operators

This view

  • Original page
  • New address

GeezerVison is showing www.php.net — PHP: hexdec - Manual

PHP 8.6.0 RC5 available for testing
    hypot »
    « fpow
    • Preface
    • Function Reference
    • Mathematical Extensions
    • Math
    • Math Functions

    hexdec

    (PHP 4, PHP 5, PHP 7, PHP 8)

    hexdec — Hexadecimal to decimal

    Description

    function hexdec(string $hex_string): int|float

    Returns the decimal equivalent of the hexadecimal number represented by the hex_string argument. hexdec() converts a hexadecimal string to a decimal number.

    hexdec() will ignore any non-hexadecimal characters it encounters. As of PHP 7.4.0 supplying any invalid characters is deprecated.

    Parameters

    hex_string

    The hexadecimal string to convert

    Return Values

    The decimal representation of hex_string

    Changelog

    Version Description
    7.4.0 Passing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist.

    Examples

    Example #1 hexdec() example

    <?php
    var_dump(hexdec("ee")); // prints "int(238)"
    var_dump(hexdec("a0")); // prints "int(160)"
    ?>

    Example #2 hexdec() with Invalid Characters

    <?php
    var_dump(hexdec("See"));  // print "int(238)"
    var_dump(hexdec("that")); // print "int(10)"
    ?>

    Notes

    Note:

    The function can convert numbers that are too large to fit into the platforms int type, larger values are returned as float in that case.

    See Also

    • dechex() - Decimal to hexadecimal
    • bindec() - Binary to decimal
    • octdec() - Octal to decimal
    • base_convert() - Convert a number between arbitrary bases

    Found A Problem?

    Learn How To Improve This Page • Submit a Pull Request • Report a Bug
    +add a note

    User Contributed Notes 2 notes

    up
    down
    31
    hafees at msn dot com ¶
    16 years ago
    Use this function to convert a hexa decimal color code to its RGB equivalent. Unlike many other functions provided here, it will work correctly with hex color short hand notation.
    
    Also, if a proper hexa decimal color value is given (6 digits), it uses bit wise operations for faster results.
    
    For eg: #FFF and #FFFFFF will produce the same result
    
    <?php
    /**
     * Convert a hexa decimal color code to its RGB equivalent
     *
     * @param string $hexStr (hexadecimal color value)
     * @param boolean $returnAsString (if set true, returns the value separated by the separator character. Otherwise returns associative array)
     * @param string $seperator (to separate RGB values. Applicable only if second parameter is true.)
     * @return array or string (depending on second parameter. Returns False if invalid hex color value)
     */                                                                                                 
    function hex2RGB($hexStr, $returnAsString = false, $seperator = ',') {
        $hexStr = preg_replace("/[^0-9A-Fa-f]/", '', $hexStr); // Gets a proper hex string
        $rgbArray = array();
        if (strlen($hexStr) == 6) { //If a proper hex code, convert using bitwise operation. No overhead... faster
            $colorVal = hexdec($hexStr);
            $rgbArray['red'] = 0xFF & ($colorVal >> 0x10);
            $rgbArray['green'] = 0xFF & ($colorVal >> 0x8);
            $rgbArray['blue'] = 0xFF & $colorVal;
        } elseif (strlen($hexStr) == 3) { //if shorthand notation, need some string manipulations
            $rgbArray['red'] = hexdec(str_repeat(substr($hexStr, 0, 1), 2));
            $rgbArray['green'] = hexdec(str_repeat(substr($hexStr, 1, 1), 2));
            $rgbArray['blue'] = hexdec(str_repeat(substr($hexStr, 2, 1), 2));
        } else {
            return false; //Invalid hex color code
        }
        return $returnAsString ? implode($seperator, $rgbArray) : $rgbArray; // returns the rgb string or the associative array
    } ?>
    
    OUTPUT:
    
    hex2RGB("#FF0") -> array( red =>255, green => 255, blue => 0)
    hex2RGB("#FFFF00) -> Same as above
    hex2RGB("#FF0", true) -> 255,255,0
    hex2RGB("#FF0", true, ":") -> 255:255:0
    up
    down
    1
    repley at freemail dot it ¶
    20 years ago
    From color to color to ...... to color with fade effect. Good for dynamic bar chart.
    
    <?php
    //MultiColorFade(array hex-colors, int steps)
    function MultiColorFade($hex_array, $steps) {
    
    $tot = count($hex_array);
    $gradient = array();
    $fixend = 2;
    $passages = $tot-1;
    $stepsforpassage = floor($steps/$passages);
    $stepsremain = $steps - ($stepsforpassage*$passages);
    
       for($pointer = 0; $pointer < $tot-1 ; $pointer++) {
     
           $hexstart = $hex_array[$pointer];
           $hexend = $hex_array[$pointer + 1];
    
           if($stepsremain > 0){
               if($stepsremain--){
                   $stepsforthis = $stepsforpassage + 1;
               }
           }else{
               $stepsforthis = $stepsforpassage;
           }
        
           if($pointer > 0){
               $fixend = 1;         
           }
        
           $start['r'] = hexdec(substr($hexstart, 0, 2));
           $start['g'] = hexdec(substr($hexstart, 2, 2));
           $start['b'] = hexdec(substr($hexstart, 4, 2));
    
           $end['r'] = hexdec(substr($hexend, 0, 2));
           $end['g'] = hexdec(substr($hexend, 2, 2));
           $end['b'] = hexdec(substr($hexend, 4, 2));
     
           $step['r'] = ($start['r'] - $end['r']) / ($stepsforthis);
           $step['g'] = ($start['g'] - $end['g']) / ($stepsforthis);
           $step['b'] = ($start['b'] - $end['b']) / ($stepsforthis);
        
           for($i = 0; $i <= $stepsforthis-$fixend; $i++) {
     
               $rgb['r'] = floor($start['r'] - ($step['r'] * $i));
               $rgb['g'] = floor($start['g'] - ($step['g'] * $i));
               $rgb['b'] = floor($start['b'] - ($step['b'] * $i));
     
               $hex['r'] = sprintf('%02x', ($rgb['r']));
               $hex['g'] = sprintf('%02x', ($rgb['g']));
               $hex['b'] = sprintf('%02x', ($rgb['b']));
      
               $gradient[] = strtoupper(implode(NULL, $hex));
           }
       }
     
       $gradient[] = $hex_array[$tot-1];
     
    return $gradient;
    }
    //end MultiColorFade()
    
    //start test
    $multi_hex_array = array();
    $multi_hex_array[] = array('FF0000','FFFF00');
    $multi_hex_array[] = array('FF0000','FFFF00','00FF00');
    $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF');
    $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF');
    $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF','000000');
    $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF','000000','FFFFFF');
    
    foreach($multi_hex_array as $hex_array){
    
       $totcolors = count($hex_array);
       $steps = 44;
    
       $a = MultiColorFade($hex_array, $steps);
       $tot = count($a);
    
       $table = '<table border=1 width="300">' . "\n";
    
       for ($i = 0; $i < $tot; $i++){
           $table .= ' <tr><td bgcolor="' . $a[$i] . '">' . ($i+1) .'</td><td><pre>' . $a[$i] . '</pre></td></tr>' . "\n";
       }
     
       $table .= '</table><br /><br />';
     
       echo '<br />Demanded steps = ' . $steps . '<br />';
       echo 'Returned steps = ' . $tot;
     
       if($steps == $tot){
           echo '<br />OK.' . $steps . ' = ' . $tot . '<br />';
       }else{
           echo '<br /><span style="color:#FF0000">FAILED! Demanded steps and returned steps are NOT equal!: ' . $steps . ' != ' . $tot . '</span><br />';
       }
    
       echo $table;
     
    }
    //end test
    ?>
    
    Repley.
    +add a note
    • Math Functions
      • abs
      • acos
      • acosh
      • asin
      • asinh
      • atan
      • atan2
      • atanh
      • base_​convert
      • bindec
      • ceil
      • clamp
      • cos
      • cosh
      • decbin
      • dechex
      • decoct
      • deg2rad
      • exp
      • expm1
      • fdiv
      • floor
      • fmod
      • fpow
      • hexdec
      • hypot
      • intdiv
      • is_​finite
      • is_​infinite
      • is_​nan
      • log
      • log10
      • log1p
      • max
      • min
      • octdec
      • pi
      • pow
      • rad2deg
      • round
      • sin
      • sinh
      • sqrt
      • tan
      • tanh
    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.