16. juli 2005 - 11:51Der er
21 kommentarer og 2 løsninger
css styles laves af php. andre muligheder?
Hej, jeg har en php fil hvor jeg har alt mit css liggende. Det smarte ved det er at jeg kan sætte sidebredde, farver osv op i min settings.php. og derved er jeg fri for at rette manuelt i styles.css filen hver gang noget skal ændres.
Mit spørgsmål er: Kan det laves om således at jeg skriver: <link rel="stylesheet" href="/styles.css" type="text/css"> og jeg vil stadigvæk gerne at php sætter variablerne på farver, bredder osv osv.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
1. Der må ikke stå <style type="text/css"> i en .css fil, php eller ej 2. Du skal kalde den som en php fil: <link rel="stylesheet" href="/styles.php" type="text/css"> 2. PHP filen skal sætte content type som text/css
Du kunne sætte noget script i bunden af dit style.php script - så den skriver css'en over i en .css fil, så behøver du kun at require style.php på én side. og så køre normalt med <link>
mysli: spændende ide :o) Hvordan dælan gør man det? :o)
erikjacobsen: er du sikker på at man kan <link rel="stylesheet" href="/styles.php" type="text/css"> og tror du det virker i alle browsere? Har du selv prøvet en gang?
og det virker ik helt som det skal. Kun nogle af styles virker. og det ser ud som om at det er alle de steder hvor der er php koder det går galt. Jeg tror ik man kan gøre det sådan...
desuden opdagede jeg ved vis kilde at dette underlige script var blevet tilføjet automatisk. Det er ihvertfald ik noget jeg har skrevet :o) Her er det: <script language="JavaScript"> <!--
function SymError() { return true; }
window.onerror = SymError;
var SymRealWinOpen = window.open;
function SymWinOpen(url, name, attributes) { return (new Object()); }
Det vil virke i alle browsere hvis du gør de 3 ting jeg skrev (jeg kan godt nok ikke tælle længere end til 2 i dag...). Men det er da bestemt en god ide at lave en fast CSS fil ud fra data, så de ikke behøver blive beregnet hver gang. En slags caching! Så tit ændrer du vel heller ikke farverne ;)
1. Der må ikke stå <style type="text/css"> i en .css fil 2. Du skal kalde den som en php fil: <link rel="stylesheet" href="/styles.php" type="text/css"> 3. PHP filen skal sætte content type som text/css
Jeg mener at opfylde dem alle 3 og det virker ik! Jeg skriver dette imellem <head> og </haed> <link rel="stylesheet" href="/pgs/styles.php" type="text/css">
og min /pgs/styles.php ser kort fortalt således ud: img { padding : 0px; border : 0px; }
Nu ved jeg hvad der er galt. Alle variablerne følger jo med når jeg skriver require() men det gør de jo ik på den anden måde. Så styles.php aner ikke hvad variablernes værdier er. Doooh :o) dum fejl af mig der :o)
det virker ik alligevel :o) ÆV Jeg får denne fejl når jeg åbner siden i mozilla: Error: The stylesheet http://www.rejseagenten.dk/pgs/styles.php was not loaded because its MIME type, "text/html", is not "text/css".
Nogen der kan hjælpe mig med at få styles php til at generere en styles.css fil ??? For det må da virke :o) så kan jeg bare lave en opdater-css-link som kun er synligt for admin. Nogen der kan fortælle hvordan jeg genererer en fil?
Hmmmm jeg har et problem... Når jeg opdaterer styles.css filen med php, så skriver den til styles.css filen. Dvs den bliver længere for hver gang. Den skulle jo først tømme filen, og så indsætte indhold i filn.
Her er mit script: // Let's make sure the file exists and is writable first. if (is_writable($_SERVER["DOCUMENT_ROOT"].$css_file_name)) { if (is_file($_SERVER["DOCUMENT_ROOT"].$css_file_name)){$handle = @unlink($_SERVER["DOCUMENT_ROOT"].$css_file_name);} if (!$handle = fopen($_SERVER["DOCUMENT_ROOT"].$css_file_name, 'a')) {$sorry_didnt_work=true; $alert_message = "Cannot open file ".$css_file_name;}
// Write $somecontent to our opened file. if (fwrite($handle, $somecontent) === FALSE) {$sorry_didnt_work=true; $alert_message = "Cannot write to file ".$css_file_name;} if (!$sorry_didnt_work){ $alert_message = "Success, wrote CSS to ".$css_file_name; fclose($handle); } } else { $alert_message = "The file ".$css_file_name." is not writable"; } echo "<script type='text/javascript'>alert('".$alert_message."');</script>";
Så man skal altså først lige tømme filen, men hvordan gør man det?
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.