[PHP] PHP-Variabelen in CSS bestand

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • schwa78
  • Registratie: Juli 2001
  • Laatst online: 12-03-2024
Ik wil op mijn pagina steeds een random achtergrond. De variabele hiervoor wordt in index.php gegenereerd (voordat de templates gestart worden).

Nu wil ik dus dat deze variabele in mijn style.css opgenomen wordt. Hoe kan ik dat doen?

<?php echo ("$background"); ?> werkt niet :(

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Zet een een aantal classnamen in een array.
Kies door middel van een random nummer een waarde uit de array.
Echo deze op een pagina.

Of denk ik nu te simpel?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

gorgi_19 schreef op 21 May 2003 @ 10:19:
Zet een een aantal classnamen in een array.
Kies door middel van een random nummer een waarde uit de array.
Echo deze op een pagina.

Of denk ik nu te simpel?
Is inderdaad een creatieve oplossing lijkt me. Wellicht kun je iets met in-style doen?

Acties:
  • 0 Henk 'm!

Verwijderd

Mag ik opmerken dat ik het een beetje vreemd vind om losse CSS files door PHP te laten genereren? Kun je zoiets niet beter via een interne stylesheet of inline styles opgeven? Kun je niet beter een statische CSS gebruiken, met een aantal classes/id's met verschillende achtergronden, en dan in de HTML pagina een class/id toekennen aan bijv. het body element?

Maar goed, als je het dan toch wilt...

Je CSS file moet door de PHP processor als je wilt dat de PHP code wordt uitgevoerd. Dat kan door je webserver zo te configureren dat CSS files als PHP bestanden worden uitgevoerd. Bijv:
code:
1
AddType application/x-httpd-php .php .css


Wat ook kan, is je CSS file gewoon de PHP extentie geven.

In beide gevallen, zul je zelf even een content-type header moeten meegeven, vóór alle tekst uit.
PHP:
1
header ( 'Content-Type: text/css' );

[ Voor 19% gewijzigd door Verwijderd op 21-05-2003 10:27 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Maak een style page aan in php:

Style.php
<?
$background="#E4E4E4"; # Achtergrondkleur
$style="
FONT {FONT-FAMILY: Verdana; FONT-SIZE: 10px}
TD {FONT-FAMILY: Verdana; FONT-SIZE: 10px}
BODY {FONT-FAMILY: Verdana; FONT-SIZE: 10px}
A:hover {COLOR: #CC0000; FONT-SIZE: 10px; FONT-FAMILY: Verdana; TEXT-DECORATION: underline}
body
{scrollbar-DarkShadow-Color:#000000;
scrollbar-Track-Color:#E4E4E4;
scrollbar-Face-Color:#E4E4E4;
scrollbar-Shadow-Color:#000080;
scrollbar-Highlight-Color:#FFFFFF;
scrollbar-3dLight-Color:#FFFFFF;
scrollbar-Arrow-Color:#003366;}
"; # Style


?>
*********
In de normale pagina
<? require("Style.php"); ?> in je pagina zetten

in de <STYLE tag> het volgende:
<style=<? echo $style; ?>>

je dan ook evt meerdere styles defineren.

Acties:
  • 0 Henk 'm!

  • schwa78
  • Registratie: Juli 2001
  • Laatst online: 12-03-2024
Dat ik er niet aan gedacht heb om het gewoon in-style te doen.

Dus in template.php
<table class="maintable" style="background-image: url("<?php echo "$background"; ?>")">

Acties:
  • 0 Henk 'm!

  • schwa78
  • Registratie: Juli 2001
  • Laatst online: 12-03-2024
Shit, dat werkt dus niet...

Raar, want het wordt wel goed geparsed...
<table class="maintable" style="background-image: url("images/back2.gif")">

Acties:
  • 0 Henk 'm!

Verwijderd

Jij wou zeggen dat dat keurige HTML is?
Dan moet je toch echt even beter op de quotes letten.

Het heet overigens inline, geen in-style, of wat dan ook. (beetje klok/klepel)

[ Voor 31% gewijzigd door Verwijderd op 21-05-2003 10:57 ]


Acties:
  • 0 Henk 'm!

  • Stubby
  • Registratie: Januari 2002
  • Laatst online: 13:01
Ik heb eens iets gemaakt waarbij ik deels een vast stylesheet gebruikte en deels een door php gemaakte, het haalde dan de identifiers op uit de database en zette die onderaan de stylesheet, dat ging gewoon perfect. kwestie van netjes de identifiers en style regels omschrijven naar een correcte style sheet regel

Acties:
  • 0 Henk 'm!

  • schwa78
  • Registratie: Juli 2001
  • Laatst online: 12-03-2024
Verwijderd schreef op 21 May 2003 @ 10:55:
Jij wou zeggen dat dat keurige HTML is?
Dan moet je toch echt even beter op de quotes letten.

Het heet overigens inline, geen in-style, of wat dan ook. (beetje klok/klepel)
Inline, dat was het... ik kon er al niet opkomen en in een bovenstaande post ging het over in-style...

Wat is er mis met de quotes in die geparsde html? Ik ben nog een beetje een CSS newbe, dus ik weet niet of het style gedeelte goed is...

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Waar staat een quote voor? Voor het begin / einde van een statement. En als je dit weet, kijk dan eens heel goed naar je eigen code.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • schwa78
  • Registratie: Juli 2001
  • Laatst online: 12-03-2024
Ah, ik zie het.

Bedankt voor de hulp! Het werkt...

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 12:54

Bosmonster

*zucht*

In beide gevallen, zul je zelf even een content-type header moeten meegeven, vóór alle tekst uit.
PHP:
1
header ( 'Content-Type: text/css' );
Dat is volgens mij echt niet nodig. Een cssfile is gewoon een textfile en in je style-tag geef je al een content-type op van hoe die de textfile moet behandelen.

Ik heb er zelf in ieder geval nog nooit problemen mee gehad, zowel niet met javascript als met css files die gegenereerd werden door php.
Pagina: 1