【发布时间】:2014-01-29 16:36:57
【问题描述】:
我想将我的十六进制颜色从颜色输入(例如:#FFFFFF)转换为 PHP 十六进制数字格式(例如:0xFFFFFF)。
我尝试使用 str_replace 将 # 替换为 0x 但这将其转换为字符串,我想将其保留为数字。
有什么办法吗?
【问题讨论】:
标签: php colors hex color-picker
我想将我的十六进制颜色从颜色输入(例如:#FFFFFF)转换为 PHP 十六进制数字格式(例如:0xFFFFFF)。
我尝试使用 str_replace 将 # 替换为 0x 但这将其转换为字符串,我想将其保留为数字。
有什么办法吗?
【问题讨论】:
标签: php colors hex color-picker
也许这个功能是你需要的?
http://www.php.net/manual/en/function.hexdec.php
"返回 hex_string 参数表示的十六进制数的十进制等效值。hexdec() 将十六进制字符串转换为十进制数。
hexdec() 将忽略它遇到的任何非十六进制字符。"
一些补充信息:
dechex() 如果你需要它会给你一个包含数字的十六进制表示的字符串,但如果它是一个你需要传递的数字,你似乎应该处理一个整数。
【讨论】:
你可以试试这个吗,找到了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");
【讨论】: