http://www.vector.safwanmanpower.com/通過Web界面對css文件進行永久更改?
我正在開發一個網站包,這個包的網站將給予第三方公司 因此,如果第三方公司想改變背景顏色,字體臉css來改變這一點,我創建了一個網頁,供所有這個css屬性被指定,並且在文本框中它們將選擇背景顏色,字體值和這些更改應該在提交更改後在css文件中生效。
我的目標背後是這家公司可以通過網頁界面進行更改,我不希望他們找到css代碼並更改它們的值以使工作變得輕鬆。
http://www.vector.safwanmanpower.com/通過Web界面對css文件進行永久更改?
我正在開發一個網站包,這個包的網站將給予第三方公司 因此,如果第三方公司想改變背景顏色,字體臉css來改變這一點,我創建了一個網頁,供所有這個css屬性被指定,並且在文本框中它們將選擇背景顏色,字體值和這些更改應該在提交更改後在css文件中生效。
我的目標背後是這家公司可以通過網頁界面進行更改,我不希望他們找到css代碼並更改它們的值以使工作變得輕鬆。
這個想法聽起來不錯,但它可能會有點工作,並超出1個單一的答案。但這是我如何接近它。
有一個數據庫存儲當前的選擇器,屬性和值。
如:
selector | property | value
---------+----------+----------
div | color | #FFFFFF
div | float | left
等等,等等......
在用戶提交的變化,做以下事情
1 - 更新數據庫中的行,例如如果我,用戶將div更改爲#440044,則更新該行使其如此讀取:
selector | property | value
---------+----------+----------
div | color | #440044
div | float | left
2 - 使用PHP(或您的服務器端語言選擇)拉數據庫的內容,通過選擇組織,利用沿線的MySQL查詢:
$query = 'SELECT * FROM css ORDER BY selector';
3 - 循環遍歷這些值,將它們分組成陣列的陣列是這樣的:
$css_array = array();
foreach($rows as $row) {
if(! array_key_exists($row['selector'], $css_array)) {
$css_array[$row['selector']] = array();
}
// push each value onto the sub array
$css_array[$row['selector']][] = $row['property'] . ':' . $row['value'];
}
這會留下與數組的數組 - 表示CSS
array(
'div' => array(
'color:#440044',
'float:left'
),
'h1' => array(
'font-size:16px'
)
);
4的元件的每個子陣列 - 利用這種陣列和內爆法,建立一個龐大的字符串,如:
foreach($css_array as $key => $value) {
$s .= key . '{';
$s .= implode(';\n', $value);
$s .= key . '}';
}
5 - 這應該離開你看起來像一個正常的CSS表的字符串。使用PHP中的fopen等函數將其寫入一個名爲style.css或類似文件的文件中。
你需要一點點的PHP腳本,假設你添加了PHP的標籤,因爲這是你選擇的語言。
該腳本將不得不打開相應的css文件,搜索相關部分進行更改,更改並將更改後的文件寫入磁盤。您可以使用正則表達式來查找css文件的相關類&屬性。
問題是什麼? – 2011-04-11 09:00:23
要通過網頁永久更改css文件 – 2011-04-11 09:03:16
您的特定問題是什麼?到目前爲止,你只描述了你的系統,這聽起來對我來說確實很好。你到底在問什麼? – 2011-04-11 09:04:54