PHP:将颜色输入的十六进制颜色转换为PHP十六进制数

时间:2014-01-29 16:36:57

标签: php colors hex color-picker

我想将我的十六进制颜色从颜色输入(例如:#FFFFFF)转换为PHP十六进制数字格式(例如:0xFFFFFF)。

我尝试使用str_replace将#替换为0x,但这会将其转换为字符串,我想保留一个数字。

任何解决方案?

2 个答案:

答案 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()会给你一个包含数字的十六进制表示的字符串,但是如果它是你需要传递的数字,你似乎应该处理一个整数。