PHP Function To Convert Hex To RGB

Updated: in PHP

PHP
If you are working on a web app that does things with colours then you could find it useful to have function to convert between different colour types.

Here is a PHP snippet which allows you to convert HEX colours to RGB colours.

All you have to do is pass in the HEX colour as a parameter and it will return the RGB values as an array.

function hex2rgb($color)
{
    list($r, $g, $b) = array($color[0].$color[1],
                             $color[2].$color[3],
                             $color[4].$color[5]);
    $r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
    return array($r, $g, $b);
}

Improved Version

Here is an improved version of the above function to convert Hex to RGB thanks to Michael Kaiser. This function allows you to send in 6, 3, 2 or 1 digit Hex colours to the function and will still convert it to RGB.

function hex2RGB($hex) {
       preg_match("/^#{0,1}([0-9a-f]{1,6})$/i",$hex,$match);
       if(!isset($match[1])) {return false;}
       if(strlen($match[1]) == 6) {
               list($r, $g, $b) = array($hex[0].$hex[1],$hex[2].$hex[3],$hex[4].$hex[5]);
       }
       elseif(strlen($match[1]) == 3) {
               list($r, $g, $b) = array($hex[0].$hex[0],$hex[1].$hex[1],$hex[2].$hex[2]);
       }
       else if(strlen($match[1]) == 2) {
               list($r, $g, $b) = array($hex[0].$hex[1],$hex[0].$hex[1],$hex[0].$hex[1]);
       }
       else if(strlen($match[1]) == 1) {
               list($r, $g, $b) = array($hex.$hex,$hex.$hex,$hex.$hex);
       }
       else {
               return false;
       }
       $color = array();
       $color['r'] = hexdec($r);
       $color['g'] = hexdec($g);
       $color['b'] = hexdec($b);
       return $color;
}

Keep updated with the latest tutorials and snippets.

Join me on Twitter | G+ | Facebook

Learn Web Design, Coding & More. No Risk. No Contracts. Learn More
Comment