PHP を使用して css 16 進コードを短い対応するコードに変換する最良の方法は何でしょうか? css 圧縮スクリプトを作成するだけで、ファイル サイズが少し改善される場合があります。
ありがとう
この場合、ある形式 (#RRGGBB、チャネルごとに 8 ビットの色情報) から明らかに異なる形式 (#RGB、チャネルごとに 4 ビットの色情報のみ) に変換しようとしています。これは、両方の 16 進数が同じ場合にのみ実行できます。
次のような単純で簡単なことを試すことができます。
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 形式の場合はどうでしょうか。