Gabis BLOGhaeuschen

Aus dem Leben einer Heidjerin

PHP-Code in der css-Datei

Ich habe eine neue Spielerei eingebaut: Insgesamt vier Headergrafiken, die sich beim Aufruf einer anderen Seite per Zufallsgenerator jeweils erscheinen. :smile:

Normalerweise wäre das kein Problem gewesen, das in die header.php von WordPress einzubauen. In einigen WordPress-Themes, z.B. Kubrik, ist das Style für die Headergrafik ja dort abgelegt und man kann einen php-Schnibbel für den Zufallsgenerator einfach folgendermaßen einbauen:

<?php
$new[1] = "header0.jpg";
$new[2] = "header1.jpg";
$new[3] = "header2.jpg";
$new[4] = "header3.jpg";
$zufall = rand(1,4);
?>

Und dann so aufrufen für den Header:

background: url(images/header<?php echo $new[$zufall]; ?>) no-repeat;

Nun setze ich ja den Styleswitcher ein für die Designs “Dunkel” und “Xmas”. Wenn ich den Zufallsgenerator also wie oben in die header.php eingefügt hätte, würden die Grafiken in allen Styles erscheinen und das wollte ich natürlich nicht. Die Lösung kann nur in der css-Datei liegen. Aber in einer normale css-Datei kann man keinen PHP-Code ausführen, weil die nicht geparst wird.

Nach ein paar Recherchen im Netz fand ich die Lösung: Die style.css muß in style.php umbenannt werden und damit sie weiterhin als css-Datei erkannt wird, muß man sie als text/css ausgeben, und das geht folgendermaßen: Einfach

<?php
header("content-type: text/css");
?>

in die css hineinschreiben. Dann konnte ich meinen Codeschnippel da auch hineinschreiben und die Zufallsbilder als background direkt von dort aufrufen.

Ich habe das hier mit Firefox, IE und Opera getestet – es funktioniert! :love:

PS.: Damit der php-Code nicht in diesem Beitrag hier ausgeführt wird, habe ich die spitzen Klammern, < und >, “maskiert”, d.h. im Unicode geschrieben.

Der Validator läßt sich übrigens ein U für ein X vormachen und validiert die style.php, die als css ausgegeben wird, einwandfrei :-)

Ähnliche Beiträge:

  • Keine ähnlichen Beiträge

Diesen Beitrag bookmarken:

16 Kommentare

  1. freddy sagt:

    Hi
    bin gerade zufällig vorbeigekommen.
    du kannst es noch ein wenig edler ausgestalten.

    <?php
    $dir = "dein pfad zum Bilderordner";
    $do = opendir($dir);
    while (false !== ($file = readdir($do))){
    if (!preg_match("/^\.{1,2}$/",$file)) {
    $myfile[] = $file;
    }
    }
    closedir($do);
    $rand = array_rand($myfile,1);
    echo "";
    ?>

    Diese PHP Abfrage öffnet deinen Bilderordner den du oben festgelegt hast,es nimmt eine Bilddatei und fügt es an die Stelle wo du dieses script hast.
    Der Vorteil du nimmst einfach irgendwelche Bilder und verschibst Sie in den oben festgelegten Ordner. :D :party:

    • Gabi sagt:

      danke für den Super Tipp! :-)
      Über so kleine Codeschnipsel freue ich mich immer, da ich zwar vorhandenes PHP an meine Bedürfnisse ein wenig anpassen kann, aber das war’s dann auch schon …

    • Bebjamin sagt:

      Hallo,

      würde es auch mit swf dateien Funktionieren. Suche sowas in der Art für Flash Animationen für meine HP Dark-Atzen.de

      Mfg Benny

  2. Thomas D. sagt:

    Hallo Gabi,

    richtiger Gedanke, problematisch ist aber in dem Fall, dass die css-Datei in diesem Fall nicht gecacht wird, was, abhängig von der Größe der Datei und Verbindungsgeschwindigkeit des Nutzers, Einfluss auf die Ladezeit haben kann.

    Grüße, Thomas

  3. Henry sagt:

    Danke, coole Idee.. Konnte ich gerade erfolgreich umsetzen.

  4. Cenor sagt:

    Also ich steuere meine css prinzipiell mit php.
    Niemand verlangt ja, daß man ledigliche eine externe css verwendet.
    Ich schreibe also alles, was in allen dynamischen Seiten gleich ist über eine normale css, und alles was zufällig oder dynamisch übergeben wird über eine zweite, in der nur die classes festgelegt sind die variable sind.
    So geht dann auch der geparste Code durch jeden validator.

  5. Marcel sagt:

    Hallo Gabie,

    ich habe das heute oder besser gesagt gestern auch bei mir im Blog eingebaut und muss gestehen tolle Sache. Hatte nur zum Anfang ein kleinen Denkfehler gehabt.
    Der bezog sich darauf das ich dachte es werden die zahlen von 1-4 nur angefügt was ja nicht so ist.
    Nach dem ich dies erkannt habe, funktioniert dies nun recht gut.

    Danke schön dafür.

  6. lauras sagt:

    nett… aber ich versteh net wie cih des einfügen soll… :heul:

  7. Webjunkie sagt:

    Sehr anregend, Dein Artikel, gefällt mir, kann man auch weiterspinnen.

  8. Michael sagt:

    Sehr schönes “Schnibbelchen”,-
    ist doch eleganter als ständig im Template selber rumzubauen.

    Danke.

  9. Marcel sagt:

    mm, was ich mich gerade frage ist, ob es auch möglich ist das man zwei Grafiken gleichzeitig ändern kann.

    Diese müssten aber eben immer zusammen angezeigt werden. also immer ein paar an Grafiken.

    Denn bei mir im Blog ändere ich ja von zeit zu zeit das Foto in dem Viereck, es währe aber eben schöner wenn ich dies vorgeben könnte und so eben bei jeden aufrufe eine anderes par angezeigt wird.

    Ich glaube da muss man sich mal ransetzen. :pfeif:

  10. Fred sagt:

    Hallo erstmal 8)

    tolle Idee, bin grad zufällig drüber gestolpert, weil ich sowas in meine Website einbauen will.

    brauch ich da nen Server der PHP interpretiert oder kann ich ganz normal html/css-like weiterverfahren?

    thanks, :)

  11. [...] habe ich das ganze hier in Gabis Bloghäuschen (PHP-Code in der css-Datei). Da wird das Vorgehen auch ausführlich erklärt. Schönen [...]

  12. winnie sagt:

    Ich merke schon, meine kleinen Schritte in Richtung PHP-Programmierung werden hier wohl nicht ganz ernst

    doch!!!
    Coole Idee!!!
    (Auch wenn ich dich nicht kenne… bin zufällig vorbeigestolpert…)

  13. Gabi sagt:

    Ich merke schon, meine kleinen Schritte in Richtung PHP-Programmierung werden hier wohl nicht ganz ernst genommen :hausfrau: :lmaa: :evil:

  14. while (!asleep)
    sheep++;

    :frech:


  • Statistik

    • 1,040 Artikel
    • 2,313 Kommentare
    • 115 Kategorien
    • 43 Verweise. 0.926 Sekunden.
Gabis BLOGhaeuschen steht auf einem WordPress 3.0.1 - Fundament. Anpassung und Design: Gabi. 3 Baustellentouristen