我的$_POST
值包含css友好的十六进制颜色值,例如:#ffffff
。为了使它对ColorJizz库友好,我应该用十六进制整数值。下面的代码不起作用。如果我将$color_hex
变量替换为硬编码值,例如:0xffffff
,则可行。
include('colorjizz.php');
$color_hex = '0x' . substr($_POST['color'], 1);
$color = new Hex($color_hex);
这很可能是一个非常高的水平问题,但是在我的头撞到墙上几个小时后,我会感激任何建议。谢谢。
答案 0 :(得分:1)
如果您拥有包含数字的十六进制表示的字符串,并且您希望将其作为整数,则必须将十六进制转换为十进制。如果我的问题是对的。
$dec = hexdec("ff0000");
答案 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
指定输入字符串是十六进制的。