複数の CSS を 1 つに生成するスクリプトに取り組んでいます。そして、これがスクリプトです。
$full_string = "";
foreach($allfiles as $curfile => $file) {
$file = $PATH[$curfile] . $file;
$file_open = fopen($file , 'r');
$concat = "\n" . fread($file_open , filesize($file)) . "\n";
$full_string .= $concat;
fclose($file_open);
}
return $full_string;
ここでは、すべての CSS ファイルを 1 つに結合しています。しかし、現在の問題は、現在の CSS($file) を別の CSS(と考えてみましょう) と比較する必要があることoverrider.css
です。そして $file が次のようなスタイルを持っている場合、
h1 {
color: white;
background: teal;
FONT-FAMILY: arial, helvetica, lucida-sans, sans-serif;
FONT-SIZE: 18pt;
FONT-STYLE: normal;
FONT-VARIANT: normal;
}
body
{
font-family: arial;
FONT-SIZE: 14px;
}
そして、overrider.css が次のようなスタイルを持っている場合、
body
{
font-family: Calibri;
color: #3E83F1;
}
次に、生成される最終的な CSS(output.css) は、次のようになります。
h1 {
color: white;
background: teal;
FONT-FAMILY: arial, helvetica, lucida-sans, sans-serif;
FONT-SIZE: 18pt;
FONT-STYLE: normal;
FONT-VARIANT: normal;
}
body
{
font-family: Calibri;
FONT-SIZE: 14px;
color: #3E83F1;
}
ここでは、 body の style がoverride.css
havefont-family
にあるため、元の CSS の font-family プロパティを置き換えます。色は、元の CSS ファイルである ($file) には存在しない新しいプロパティであるため、元の CSS ファイルにプロパティを追加する必要があります。 CSS ファイル。CSSの解析について何も考えていないので、PHPでこれを達成する方法。これに関するアイデアは大歓迎です。
file1($file) および file2(override.css) として入力を指定して新しい CSS ファイルを生成する必要があることに注意してください。スタイルをオーバーライドして output.css を生成する必要があります。
前もって感謝します。