php,转换为十六进制整数

时间:2011-04-14 00:46:11

标签: php colors hex

我的$_POST值包含css友好的十六进制颜色值,例如:#ffffff。为了使它对ColorJizz库友好,我应该用十六进制整数值。下面的代码不起作用。如果我将$color_hex变量替换为硬编码值,例如:0xffffff,则可行。

include('colorjizz.php');   
$color_hex = '0x' . substr($_POST['color'], 1); 
$color = new Hex($color_hex);

这很可能是一个非常高的水平问题,但是在我的头撞到墙上几个小时后,我会感激任何建议。谢谢。

3 个答案:

答案 0 :(得分:1)

如果您拥有包含数字的十六进制表示的字符串,并且您希望将其作为整数,则必须将十六进制转换为十进制。如果我的问题是对的。

$dec = hexdec("ff0000");

http://php.net/hexdec

答案 1 :(得分:1)

“十六进制整数值”没有多大意义。十六进制表示数字(因此是字符串),而整数值表示数字的机器格式。

如果您想要这个号码,可以快速搜索一下Google hexdec

$color = hexdec(substr($_POST['color'], 1));

它似乎忽略了领先的“垃圾”,所以你甚至可以使用

$color = hexdec($_POST['color']);

答案 2 :(得分:0)

在PHP中,十六进制整数和十进制整数的数据类型相同;能够在源代码中键入0xDEAD只是语法糖。因此,您可以使用intval()将表单输入转换为字符串中的普通PHP整数:

$color_hex = intval(substr($_POST['color'], 1), 16);

最后一个参数16指定输入字符串是十六进制的。