Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 29.06.2005, 09:47   #1
TP-Senior
 
Benutzerbild von brans
 
Registriert seit: Dec 2003
Ort: Zürich
brans macht sich hier sehr viel Mühe

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.
__________________
// http://synetgies.org
Reales (nicht online) Netzwerk schweizerischer Studierender und Jungunternehmer verschiedener Fachrichtungen
brans ist offline   Mit Zitat antworten


Alt 29.06.2005, 09:56   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
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.
__________________

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

Geändert von steffenk (29.06.2005 um 09:59 Uhr).
steffenk ist offline   Mit Zitat antworten
Alt 29.06.2005, 13:26   #3
TP-Senior
 
Benutzerbild von brans
 
Registriert seit: Dec 2003
Ort: Zürich
brans macht sich hier sehr viel Mühe
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?
__________________
// http://synetgies.org
Reales (nicht online) Netzwerk schweizerischer Studierender und Jungunternehmer verschiedener Fachrichtungen
brans ist offline   Mit Zitat antworten
Alt 29.06.2005, 13:53   #4
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
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
steffenk ist offline   Mit Zitat antworten
Alt 29.06.2005, 16:16   #5
TP-Senior
 
Benutzerbild von brans
 
Registriert seit: Dec 2003
Ort: Zürich
brans macht sich hier sehr viel Mühe
Okey doke, danke bis hierhin, komme vielleicht dann später mit weiteren Fragen auf das Forum zu :-)
__________________
// http://synetgies.org
Reales (nicht online) Netzwerk schweizerischer Studierender und Jungunternehmer verschiedener Fachrichtungen
brans ist offline   Mit Zitat antworten
Alt 27.07.2005, 13:49   #6
TP-Member
 
Registriert seit: Jun 2005
freddymc macht alles soweit korrekt
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).
freddymc ist offline   Mit Zitat antworten
Alt 27.07.2005, 14:32   #7
TP-Veteran
 
Benutzerbild von jonemo
 
Registriert seit: Dec 2002
Ort: london
jonemo macht sich hier sehr viel Mühe
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.
__________________
the daily london photo
jonemo ist offline   Mit Zitat antworten
Alt 27.07.2005, 14:44   #8
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
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.
__________________
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

Geändert von HoRnominatoR (27.07.2005 um 14:46 Uhr).
HoRnominatoR ist offline   Mit Zitat antworten
Alt 27.07.2005, 16:28   #9
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's geht
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
DSB ist offline   Mit Zitat antworten
Alt 27.07.2005, 18:10   #10
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
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.
rewboss ist offline   Mit Zitat antworten
Alt 27.07.2005, 20:02   #11
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's geht
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
DSB ist offline   Mit Zitat antworten
Alt 27.07.2005, 22:03   #12
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
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
HoRnominatoR ist offline   Mit Zitat antworten
Alt 27.07.2005, 22:08   #13
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's geht
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.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank

Geändert von DSB (27.07.2005 um 22:30 Uhr).
DSB ist offline   Mit Zitat antworten
Alt 27.07.2005, 22:13   #14
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
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
HoRnominatoR ist offline   Mit Zitat antworten
Alt 28.07.2005, 11:23   #15
TP-Member
 
Registriert seit: Jun 2005
freddymc macht alles soweit korrekt
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?
freddymc ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
css file per php schreiben css file per php schreiben
« [PHP+MySQL] Query... wo ist da der Fehler? | [PHP+MySQl] zwei Datenbanken abgleichen? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:17 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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