使用 PHP 将 css 十六进制代码转换为较短的对应代码的最佳方法是什么?只需编写一个 css 压缩脚本,尽管它可能对文件大小有所帮助。
谢谢
在这种情况下,您希望从一种格式(#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 形式怎么办?