在PHP中将长十六进制代码转换为短十六进制代码

时间:2012-09-29 20:44:23

标签: php css

使用PHP将css十六进制代码转换为较短的对应代码的最佳方法是什么?只需编写一个css压缩脚本,虽然它可能对文件大小有所帮助。

由于

1 个答案:

答案 0 :(得分:0)

在这种情况下,您希望从一种格式(#RRGGBB,每个通道有8位颜色信息)转换为截然不同的格式(#RGB,只有4位每个频道的颜色信息)。只有当两个十六进制数字相同时才能执行此操作。

您可以尝试这样简单明了的事情:

function compress_css_colour($original) {
    if (   $original[1] == $original[2]
        && $original[3] == $original[4]
        && $original[5] == $original[6]) {
        return "#" . $original[1] . $original[3] . $original[5];
    } else return $original;
}

echo compress_css_colour("#aabbcc");
// prints "#abc"

肯定有更优雅的解决方案,虽然这个解决方案适用于一般情况。您还需要添加一些更强大的功能 - 如果原始CSS颜色格式错误,或者它是否采用#RRGGBBAA形式,该怎么办?