+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 30

Thema: css file per php schreiben

  1. #1
    TP-Senior brans macht sich hier sehr viel Mühe Avatar von brans
    Registriert seit
    Dec 2003
    Ort
    Zürich
    Beiträge
    287

    css file per php schreiben

    Hi Leute,

    könnte ich ein css file per php genau so einfach schreiben, wie das mit einer TXT-Datei möglich ist?

    Falls ja: Wie finde ich in PHP einen ganz bestimmten, einmaligen String und setze dann X dahinter einen variablen Wert ein, bevor ich das CSS-File speichere.

    Nochmal:

    User wählt eine Angabe aus, ich suche daraufhin per php einen vordefinierten String im CSS-File und setze dahinter den vom User ausgewählten Wert ein.

    Natürlich könnte ich den Wert auch einfach an einer festen Position einsetzen, falls man diese per PHP irgendwie bestimmen kann.


    Was mir nun zum Glück fehlt sind eine Funktion, mit der ich einen String in einer CSS Datei suchen kann, die mir einen Wert zurückgibt, mit dem ich anschliessend die Position für meinen variablen Wert bestimmen kann.

  2. #2
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Moin brans,

    Du kannst eine CSS genauso öffnen und speichern wie jede andere Datei.

    Die Suche kannst Du so realisieren:

    PHP-Code:
    $s=implode("",file("main.css"));
    $pos=strpos($s,$searchstring);
    if(
    $pos>0) {
        
    //gefunden
        
    $pos2=strpos($s,"\n",$pos); //Zeilenende suchen
        
    $extract=trim(substr($s,$pos+1,($pos2-$pos1));
        ... 
    uswjetzt den Wert rauspulen und ersetzen
    } else echo "Wert $search wurde nicht gefunden !"
    Einfacher wäre es, die CSS direkt als PHP-Datei anzulegen und die Werte in Variablen zu packen. Dann brauchst Du nur die Variablen zu ändern und kannst die einfach speichern.
    Geändert von steffenk (29.06.2005 um 09:59 Uhr)


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  3. #3
    TP-Senior brans macht sich hier sehr viel Mühe Avatar von brans
    Registriert seit
    Dec 2003
    Ort
    Zürich
    Beiträge
    287
    oke das ist natürlich ein Argument.

    Wie müsste das dann aussehen?

    Code:
    #meineid {
    background:#<?php $meinevar ?>;
    }
    oder müsste ich da irgendwie über Print oder so arbeiten?

  4. #4
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    genau so.

    ich würde allerdings mit einem Array arbeiten:

    Code:
    #meineid {
    background:#<?php $css_var[0]; ?>;
    }
    etc.
    Das lässt sich einfacher abspeichern, z.B. als serialisierter String (serialize($css_var))


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  5. #5
    TP-Senior brans macht sich hier sehr viel Mühe Avatar von brans
    Registriert seit
    Dec 2003
    Ort
    Zürich
    Beiträge
    287
    Okey doke, danke bis hierhin, komme vielleicht dann später mit weiteren Fragen auf das Forum zu :-)

  6. #6
    TP-Member freddymc macht alles soweit korrekt
    Registriert seit
    Jun 2005
    Beiträge
    90
    Ich finde diesen Ansatz recht interessant, allerdings habe ich eine Frage:

    Wie reagieren die Browser auf
    HTML-Code:
    <link href="style.php" rel="stylesheet" type="text/css">
    ??

    Kann man statt .css einfach .php schreiben? Nicht, dass dann IE 5 und Netscape 4 und Konsorten wieder Probleme machen...

    Fred

    [EDIT] und warum kann es

    Code:
    #meineid { color: <?php $eigenschaft ?>
    heißen, bzw. wäre nicht

    Code:
    #meineid { color: <?php print($eigenschaft) ?>
    richtig?
    Geändert von freddymc (27.07.2005 um 13:52 Uhr)

  7. #7
    TP-Veteran jonemo macht sich hier sehr viel Mühe Avatar von jonemo
    Registriert seit
    Dec 2002
    Ort
    london
    Beiträge
    1.020
    ja, zweiteres ist richtig, das ohne print oder alternativ echo ergibt bei mir nie das gewünscht ergebnis, auch wenn ichs aus blödheit öfter mal so schreibe.

  8. #8
    TP-Insider HoRnominatoR ist auf einem guten Weg Avatar von HoRnominatoR
    Registriert seit
    Dec 2003
    Ort
    nienburg (raum hannover)
    Beiträge
    971
    Zitat Zitat von freddymc
    Wie reagieren die Browser auf [...]
    wenn du den richtigen header mitgibst, sollte das kein problem sein.

    Zitat Zitat von freddymc
    und warum kann es [...] heißen, bzw. wäre nicht [...] richtig?
    kommt drauf an, was du machen willst. sprichst du die datei direkt an, wie in deinem bspl, musst du den string ausgeben. willst du in eine datei schreiben, brauchst du das natuerlich nicht an den client senden, sondern nur in einen string bzw danach eben die datei schreiben.
    Geändert von HoRnominatoR (27.07.2005 um 14:46 Uhr)
    in eile kam er,
    in schwarzem gewand,
    aus den tiefen des waldes,
    ein einsamer mann, ein geschoepf der freiheit,
    ein geschoepf ohne furcht,
    doch alle nannten sie ihn nur T O D

  9. #9
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Ich sehe nur einen kleinen Performancenachteil bei der Methode das Styleshett per css.php einzubinden. Hierbei wird die PHP-Datei jedes Mal ausgeführt und die gleiche CSS-Datei bei jedem Seitenaufruf neu generiert.
    Das sollte man im Hinterkopf behalten und abwägen, ob das wirklich nötig ist.

    In meinen Augen ist es besser die CSS-Datei wirklich per fopen und fwrite fest zu erzeugen, weil sie dann vom Browser gecached wird und man Bandbreite einspart und Geschwindigkeit dazugewinnt.
    Wenn mehrere CSS-Datein zur Auswahl stehen sollen, dann ist es besser nur den Namen der CSS-Datei dynamisch in den Link zu bauen.

    Wenn natürlich jede Variable beliebig anpassbar sein soll und es nicht um fertige Komplettlayouts geht, dann geht es nicht anders, wie oben beschrieben.
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  10. #10
    TP-Specialist rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE rewboss ist ein richtiges Arbeitstier - DANKE Avatar von rewboss
    Registriert seit
    Mar 2005
    Ort
    Unterfranken
    Beiträge
    2.639
    Zitat Zitat von DSB
    In meinen Augen ist es besser die CSS-Datei wirklich per fopen und fwrite fest zu erzeugen, weil sie dann vom Browser gecached wird
    Auch PHP-Dateien werden gecached.

  11. #11
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Zitat Zitat von rewboss
    Auch PHP-Dateien werden gecached.
    Sicher?
    Sie müssen doch bei jedem Aufruf neu interpretiert werden.
    Wer soll die PHP-Dateien denn cachen? Der Server?
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  12. #12
    TP-Insider HoRnominatoR ist auf einem guten Weg Avatar von HoRnominatoR
    Registriert seit
    Dec 2003
    Ort
    nienburg (raum hannover)
    Beiträge
    971
    nein, der client. genau wie jede andere CSS-datei auch. nur der dateiname ist anders.
    in eile kam er,
    in schwarzem gewand,
    aus den tiefen des waldes,
    ein einsamer mann, ein geschoepf der freiheit,
    ein geschoepf ohne furcht,
    doch alle nannten sie ihn nur T O D

  13. #13
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Zitat Zitat von HoRnominatoR
    nein, der client. genau wie jede andere CSS-datei auch. nur der dateiname ist anders.
    Edit: Ok, überzeugt.
    Dem Browser ist die Endung tatsächlich wurscht.
    Dann ist meine Argumentation nicht richtig und auch die css.php wird stur gecached.
    Umso besser.
    Geändert von DSB (27.07.2005 um 22:30 Uhr)
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  14. #14
    TP-Insider HoRnominatoR ist auf einem guten Weg Avatar von HoRnominatoR
    Registriert seit
    Dec 2003
    Ort
    nienburg (raum hannover)
    Beiträge
    971
    der ist nicht bloed, der macht genau was er soll - er cached dokumente. er cached keine PHP-datei, er cached eine CSS-datei. alles, was er bekommt, ist eine datei - was anderes ist nach aussen hin nicht erkennbar. die filectime der datei aendert sich nicht. die groesse des outputs muesste man manuell mitgeben, damit eine aenderung nach aussen hin sichtbar ist. evtl gibt es ein fallback, wenn er keine informationen ueber die laenge des outputs erhaelt. den output wird er nicht ueberpruefen - warum auch, am aenderungsdatum und an der dateigroesse hat sich nichts veraendert, also auch kein grund, die datei neuzuladen.
    in eile kam er,
    in schwarzem gewand,
    aus den tiefen des waldes,
    ein einsamer mann, ein geschoepf der freiheit,
    ein geschoepf ohne furcht,
    doch alle nannten sie ihn nur T O D

  15. #15
    TP-Member freddymc macht alles soweit korrekt
    Registriert seit
    Jun 2005
    Beiträge
    90
    Zitat Zitat von HoRnominatoR
    wenn du den richtigen header mitgibst, sollte das kein problem sein.
    sorry, Ich kenne mich mit headern nicht aus. Wie sähe denn da der richtige aus?

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51