Convertir un color de formato hexadecimal a RGB con PHP

A veces puede resultar útil convertir un color en formato hexadecimal, como por ejemplo #336699, a un formato RGB, como por ejemplo (51,102,153).

En esta entrada se muestra una función que realiza esta conversión en PHP.

function hex2rgb($hex){
	$hex = ereg_replace("#", "", $hex);
        $color = array();

        if(strlen($hex) == 3) {
        $color['r'] = hexdec(substr($hex, 0, 1) . $r);
        $color['g'] = hexdec(substr($hex, 1, 1) . $g);
        $color['b'] = hexdec(substr($hex, 2, 1) . $b);
        }
        else if(strlen($hex) == 6) {
        $color['r'] = hexdec(substr($hex, 0, 2));
        $color['g'] = hexdec(substr($hex, 2, 2));
        $color['b'] = hexdec(substr($hex, 4, 2));
        }

        return $color;
}

Ejemplo de uso:

$color = hex2rgb('336699');
echo "R:". $color['r']."
";
echo "G:". $color['g']."
";
echo "B:". $color['b']."
";

Lo que nos devolvería:

R:51
G:102
B:153