 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
29.06.2005, 09:47
|
#1
|
|
TP-Senior
Registriert seit: Dec 2003
Ort: Zürich
|
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
|
|
|
29.06.2005, 09:56
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
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));
... usw, jetzt 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).
|
|
|
29.06.2005, 13:26
|
#3
|
|
TP-Senior
Registriert seit: Dec 2003
Ort: Zürich
|
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
|
|
|
29.06.2005, 13:53
|
#4
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
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))
|
|
|
29.06.2005, 16:16
|
#5
|
|
TP-Senior
Registriert seit: Dec 2003
Ort: Zürich
|
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
|
|
|
27.07.2005, 13:49
|
#6
|
|
TP-Member
Registriert seit: Jun 2005
|
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).
|
|
|
27.07.2005, 14:32
|
#7
|
|
TP-Veteran
Registriert seit: Dec 2002
Ort: london
|
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.
|
|
|
27.07.2005, 14:44
|
#8
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
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).
|
|
|
27.07.2005, 16:28
|
#9
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
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.
|
|
|
27.07.2005, 18:10
|
#10
|
|
TP-Specialist
Registriert seit: Mar 2005
Ort: Unterfranken
|
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. 
|
|
|
27.07.2005, 20:02
|
#11
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
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?
|
|
|
27.07.2005, 22:03
|
#12
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
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
|
|
|
27.07.2005, 22:08
|
#13
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
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).
|
|
|
27.07.2005, 22:13
|
#14
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
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
|
|
|
28.07.2005, 11:23
|
#15
|
|
TP-Member
Registriert seit: Jun 2005
|
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?
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:17 Uhr.
|
 |