如果您有一個數據庫模板,您可以使用它創建一個.css文件,而無需在.css文件中使用php。
如果你有兩個表:
![enter image description here](https://i.stack.imgur.com/2JHeF.png)
你可以用它來創建一個CSS文件。僞代碼:
<?php
//$db = new PDO('mysql:host=localhist;dbname=cms', 'root', 'root');
//$query = $db->query("SELECT * FROM `selector`");
//$query = $query->fetchAll();
$query = array(
array('id' => 1, 'selector' => '.thisone'),
array('id' => 2, 'selector' => '#thatone'),
array('id' => 3, 'selector' => '.body')
);
$probs = array(
1 => array(
array('id' => 1, 'selector_id' => 1, 'css_element' => 'border', 'element_value' => '1px solid'),
array('id' => 2, 'selector_id' => 1, 'css_element' => 'padding', 'element_value' => '10px')
),
2 => array(
array('id' => 1, 'selector_id' => 2, 'css_element' => 'border', 'element_value' => '1px solid')
),
3 => array(
array('id' => 1, 'selector_id' => 2, 'css_element' => 'width', 'element_value' => '40px'),
array('id' => 2, 'selector_id' => 2, 'css_element' => 'height', 'element_value' => '40px')
)
);
$css = '';
foreach($query as $selector){
//$properties = $db->query("SELECT * FROM `properties` WHERE `selector_id` = $selector->id");
//$properties = $properties->fetchAll();
$properties = $probs[$selector['id']];
$rules = '';
foreach($properties as $element){
$rules .= "\n \t$element[css_element]:$element[element_value];";
}
$css .= "$selector[selector]".'{'."$rules \n".'}'."\n\n";
}
$fp = fopen('style.css',"w");
fwrite($fp,$css);
fclose($fp);
echo "<pre>";
echo "$css";
echo "</pre>";
?>
結果將是:
.thisone{
border:1px solid;
padding:10px;
}
#thatone{
border:1px solid;
}
.body{
width:40px;
height:40px;
}
您可以添加一個表css_file(ID,姓名),然後添加一個css_file_id到選擇器表。然後您也可以編寫多個文件。
此外,您可以創建一個編輯器表單,您可以在其中添加/刪除/更改css規則/選擇器/文件。
您試圖將php代碼放在'.css'文件中。此代碼不會執行,因爲樣式表是下載到客戶端_as-is_。 – geomagas
Derp。應該知道這一點。無論如何要解決這個問題嗎? – user2833068
爲了做到這一點,您必須直接將樣式聲明回顯到php文件中,您可以從數據庫中注入顏色。或者創建一個php文件,用於監視數據庫中的更改並重新創建樣式表的緩存副本。 –