Aí você pensa: vou criar uma tabela no banco de dados com mil colunas pra saber o que o usuário colocou e o que não. Além de dar muito mais trabalho, a leitura do banco de dados é mais lenta e sobrecarrega seu servidor.
Então não seria mais simples salvar tudo num arquivo css personalizado, e carregá-lo depois?
O problema depois é ler esse arquivo, certo?
Errado, aqui tá a solução. Todos os dados do CSS são exportados para uma Array, mais fácil do que isso impossível neh?
Só usar a função:
function parse($file){
$css = file_get_contents($file);
preg_match_all( '/(?ims)([a-z0-9\s\.\:#_\-@,]+)\{([^\}]*)\}/', $css, $arr);
$result = array();
foreach ($arr[0] as $i => $x){
$selector = trim($arr[1][$i]);
$rules = explode(';', trim($arr[2][$i]));
$rules_arr = array();
foreach ($rules as $strRule){
if (!empty($strRule)){
$rule = explode(":", $strRule);
$rules_arr[trim($rule[0])] = trim($rule[1]);
}
}
$selectors = explode(',', trim($selector));
foreach ($selectors as $strSel){
$result[$strSel] = $rules_arr;
}
}
return $result;
}
// Aqui vai o arquivo que você quer ler
$css = parse('css/personalizado_011246.css');
Para usar é muito fácil:
$css['body']['background-color']; $css['#id']['color']; $css['.class']['font-size'];
Nenhum comentário:
Postar um comentário