|
发表于 2008-6-25 13:24:59
|
显示全部楼层
感谢楼上的解决方案,我先贴到这里!
PHP复制代码 /**
* 将十六进制表示的颜色值转换为 rgb
*
* @param string $color
* @param string $default
*
* @return array
*/
function extractColor ($color, $default = 'ffffff')
{
$color= trim($color, '#&Hh');
$len = strlen($color);
if ($len == 3) {
$color= "{$color[0]}{$color[0]}{$color[1]}{$color[1]}{$color[2]}{$color[2]}";
$len = 6;
}
if (($len < 6)&&($len % 2 == 1)) {
$color= $default;
}
else
{
$color .=str_repeat('0',6-$len)
}
if(! preg_match('/^[a-fA-F0-9]{1,6}$/', $color))
$color= $default;
$dec = hexdec( $color);
return array(($dec >> 16) & 0xff, ($dec >> 8) & 0xff, $dec & 0xff);
//return array('r' => ($dec >> 16) & 0xff, 'g' => ($dec >> 8) & 0xff, 'b'=>$dec & 0xff);
} 复制代码 |
|