Avatar billede cmau Nybegynder
09. august 2006 - 14:04 Der er 9 kommentarer og
1 løsning

hente css fil ud og gør så man kan ændre

Hejsa

Hvordan kan jeg hente en css fil hvor indholdet kan væres som følgende:

html, body {
    background-color:#DCF1A3;
    background-image:url('images/bg.png');
    background-repeat:repeat-x;
    background-position:50% 0%;
    margin:0px;
    padding:0px;
    padding-left:17px;padding-right:17px;
    font:11px verdana, sans-serif;
    line-height:140%;
    color:#fff;
}
table,td {
    border:0px;
    font:11px verdana, sans-serif;
    margin:0px auto;
    border-collapse:collapse;
    padding:5px;
}
...osv.

Den skal så hente det ud med php og opskrive det som følgende:


<p>html, body {</p>
background-color: <input type="text" name="background-color" size="20" value="#DCF1A3">;
<p>background-image: <input type="text" name="background-image" size="20" value="url('images/bg.png')">;</p>
<p>background-repeat: <input type="text" name="background-repeat" size="20" value="repeat-x">;</p>
<p>}</p>
...osv. Med mulighed for at gemme igen.

Jeg har overhovedet ingen anelse om hvordan dette kan lade sig gøre? hvis det overhovedet kan.
Avatar billede jakobdo Ekspert
09. august 2006 - 16:14 #1
Måske du kan lege lidt med disse:

$input = 'html, body {
    background-color:#DCF1A3;
    background-image:url('images/bg.png');
    background-repeat:repeat-x;
    background-position:50% 0%;
    margin:0px;
    padding:0px;
    padding-left:17px;padding-right:17px;
    font:11px verdana, sans-serif;
    line-height:140%;
    color:#fff;
}';
$output = preg_replace('/(.*?{)/si', '<p>$1</p>', $input);
$input = $output;
$output = preg_replace('/([\\w-]+):(.+?);/si', '$1: <input type="text" name="$1" size="20" value="$2">;', $input);
Avatar billede cmau Nybegynder
09. august 2006 - 20:55 #2
Den går lidt i fisk. Min kode er sådan her:

<?
$file = "screen.css";
$fp = fopen($file, r);
if($fp) {
$fileArray = file($file);
$input = implode("", $fileArray);
$output = preg_replace('/(.*?{)/si', '<p>$1</p>', $input);
$input = $output;
$output = preg_replace('/([\\w-]+):(.+?);/si', '<p>$1: <input type="text" name="$1" size="20" value="$2">;</p>', $input);
echo $output;
fclose($fp);
}
?>

Se udskriften på www.woox.dk/cssgen.php
www.woox.dk/screen.css er filen.
Det går galt når der kommer A:active osv.

Og hvordan skal jeg få mulighed for at gemme det igen?
Avatar billede jakobdo Ekspert
11. august 2006 - 10:31 #3
Prøv denne:
$output = preg_replace('/([\\w-]+):([^\\{]+?);/si', '<p>$1: <input type="text" name="$1" size="20" value="$2">;</p>', $input);

Gemme, det gør du jo så ved at poste de rigtige data, og så gemme det i en fil igen! :o)
Avatar billede cmau Nybegynder
24. august 2006 - 17:05 #4
nu ser det ud til at virke, men poste de rigtige data?.. Hmm hvordan kan det laves smart?
Avatar billede jakobdo Ekspert
24. august 2006 - 17:23 #5
Hvad mener du med poste?
Altså når de skal postes videre og gemmes igen?
Avatar billede jakobdo Ekspert
24. august 2006 - 17:24 #6
Hvorfor ikke bare gemme værdierne i en database, og så trække dem ud inden du bygger siden op?
Avatar billede cmau Nybegynder
25. august 2006 - 15:41 #7
ved jeg faktisk ikke helt. Vil bare helst have det på den her måde.
Ja med poste mener jeg at gemme igen.
Avatar billede cmau Nybegynder
20. oktober 2006 - 12:12 #8
Lad os få lukket, det er ikke relevant længere, smider du svar?
Avatar billede jakobdo Ekspert
20. oktober 2006 - 12:37 #9
Svar!
Avatar billede jakobdo Ekspert
31. oktober 2006 - 14:39 #10
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester