我的$_POST
值包含css友好的十六进制颜色值,例如:#ffffff
。为了使它对ColorJizz库友好,我应该使用十六进制整数值。下面的代码不起作用。如果我将$color_hex
变量替换为硬编码值,例如:0xffffff
,它可以工作。
include('colorjizz.php');
$color_hex = '0x' . substr($_POST['color'], 1);
$color = new Hex($color_hex);
这很可能是一个新手级别的问题,但是在我头撞到墙上好几个小时之后,我很感激任何建议。谢谢你。
"十六进制整数值"没有多大意义。十六进制是数字的表示形式(因此是字符串),而整数值是数字的机器格式。
如果你想要号码,快速谷歌搜索找到hexdec
$color = hexdec(substr($_POST['color'], 1));
它似乎忽略了前面的"垃圾",所以你甚至可以使用
$color = hexdec($_POST['color']);
如果你有一个字符串包含一个数字的十六进制表示,你想把它作为一个整数,你必须从十六进制转换到十二月。
$dec = hexdec("ff0000");
http://php.net/hexdec 在PHP中,十六进制整数和十进制整数的数据类型是相同的;能够在源代码中键入0xDEAD
只是语法糖。因此,您可以使用intval()
将表单输入从字符串转换为普通的PHP整数:
$color_hex = intval(substr($_POST['color'], 1), 16);
最后一个参数16
指定输入字符串为十六进制