hexdec

(PHP 4, PHP 5)

hexdecHexadecimal to decimal

Description

number hexdec ( string $hex_string )

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.

Parameters

hex_string

The hexadecimal string to convert

Return Values

The decimal representation of hex_string

Changelog

Version Description
4.1.0 The function can now convert values that are too big for the platforms integer type, it will return the value as float instead in that case.

Examples

Example #1 hexdec() example

<?php
var_dump
(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"

var_dump(hexdec("that")); // print "int(10)"
var_dump(hexdec("a0")); // print "int(160)"
?>

See Also

Коментарии

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-$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($hexstart02));
       
$start['g'] = hexdec(substr($hexstart22));
       
$start['b'] = hexdec(substr($hexstart42));

       
$end['r'] = hexdec(substr($hexend02));
       
$end['g'] = hexdec(substr($hexend22));
       
$end['b'] = hexdec(substr($hexend42));
 
       
$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.
2006-05-28 21:55:32
http://php5.kiev.ua/manual/ru/function.hexdec.html
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($hexStr01), 2));
       
$rgbArray['green'] = hexdec(str_repeat(substr($hexStr11), 2));
       
$rgbArray['blue'] = hexdec(str_repeat(substr($hexStr21), 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
2010-08-19 06:31:00
http://php5.kiev.ua/manual/ru/function.hexdec.html

    Поддержать сайт на родительском проекте КГБ