我想将我的十六进制颜色从颜色输入(例如:#FFFFFF)转换为PHP十六进制数字格式(例如:0xFFFFFF)。
我尝试使用str_replace将#替换为0x,但这会将其转换为字符串,我想保留一个数字。
任何解决方案?
答案 0 :(得分:1)
你能试试吗,找到function here
function hex2rgb($hex) {
$hex = str_replace("#", "", $hex);
if(strlen($hex) == 3) {
$r = hexdec(substr($hex,0,1).substr($hex,0,1));
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
} else {
$r = hexdec(substr($hex,0,2));
$g = hexdec(substr($hex,2,2));
$b = hexdec(substr($hex,4,2));
}
$rgb = array($r, $g, $b);
return implode("", $rgb); // returns the rgb values separated by commas
//return $rgb; // returns an array with the rgb values
}
echo $rgb = hex2rgb("#cc0");
答案 1 :(得分:1)
也许这个功能是你需要的?
http://www.php.net/manual/en/function.hexdec.php
“返回由hex_string参数表示的十六进制数的十进制等值.hexdec()将十六进制字符串转换为十进制数。
hexdec()将忽略它遇到的任何非十六进制字符。“
添加了一些信息:
如果你需要,dechex()会给你一个包含数字的十六进制表示的字符串,但是如果它是你需要传递的数字,你似乎应该处理一个整数。