2016-06-01 11 views
-3

Wie kann ich eine CSS-Datei innerhalb von PHP-Code erstellen, ohne sie zur aktuellen Codebase hinzuzufügen? Das bedeutet, dass ich eine .CSS-Datei erstellen möchte, die PHP-Code mit einer Zeichenfolge als Dateiinhalt verwendet.So erstellen Sie eine CSS-Datei im PHP-Code

+2

Frage ist unklar. Haben Sie einen Code zum Teilen? –

+0

Ich habe versucht, keinen Code zu verwenden, um dies so klar wie möglich zu machen. In meinem PHP-Code möchte ich eine CSS-Datei mit PHP-Variablen –

+0

erstellen, sorry, ich für den einen bin ich nicht in der Lage, Ihnen etwas zur Verfügung zu stellen. Warte auf jemanden, der weiß, was du verlangst. Viel Glück –

Antwort

0

Nach mehr graben scheint es, als wäre der beste Weg, um eine Datei in PHP zu erstellen, mit tmpname und tmpfile. Ich werde tmpfile als einen Ort verwenden, auf den ich meinen CSS-Code schreiben kann. Dann kann ich sys_get_temp_dir verwenden, um das Verzeichnis zu erhalten. Dies gibt mir die gleiche Flexibilität wie bei jedem $ _FILE, das von einem Formular gesendet wird.

2

Ich glaube, Sie suchen ‚file_put_contents‘,
siehe: http://php.net/manual/en/function.file-put-contents.php

Ich nehme an, Sie die Werte zu übernehmen wollen, dass der Benutzer irgendeine Art von Formular eingegeben hat mit? Daraus als PHP-String erstellen Sie Ihre css-Deklarationen

Dann mit der Funktion file_put_contents schreiben Sie die Zeichenfolge in die CSS-Datei.

$cssString = '.selector { background-color: '.$userSubmittedBackgroundColor.'; }'; 
file_put_contents('populated.css', $cssString); 

EDIT:

Alternativ erstellen Sie die Basis CSS-Datei und Swap in den Parametern string_replace oder etwas ähnliches. Ich denke, dass Sie mehrere Ersetzungen auf einmal durchführen möchten, sehen Sie sich die 'strtr' -Funktion an, die im Grunde genommen eine String-Ersetzung ist, aber ein Array von Schlüsselwertpaaren als Ersatz-Token und -Werte akzeptiert.

base.css

.selector { background-color: [*backgroundColorPlaceholder*]; } 

PHP

$cssString = file_get_contents('base.css'); 
$cssString = str_replace('[*backgroundColorPlaceholder*], $userSubmittedBackgroundColor, $cssString); 
file_put_contents('populated.css', $cssString); 
+0

Ich denke file_put_conents ist was ich gesucht habe! Kann ich dadurch die CSS-Datei erstellen, ohne dass sie sofort auf den HTML-Code angewendet wird? (Ich versuche, die CSS-Datei in PHP zu generieren, damit ich die Datei auf AWS hochladen kann –

-1

tun Sie so etwas wie das zu bedeuten?

$cssContent = '.myClass { color:red; }' . 
       'body { border-color: green }' 

    file_put_contents('style.css', $cssContent); 
+0

Dieser Code wird die CSS-Datei vollständig überschreiben! –

+0

file_put_contents ('style.css', $ cssContent, FILE_APPEND); – njank

0

https://css-tricks.com/css-variables-with-php/

Auf dieser Seite scheint er eine Lösung zu haben. Im Grunde verlinkt er auf eine PHP-Seite als Stylesheet <link rel='stylesheet' type='text/css' href='css/style.php' /> und setzt oben auf der PHP-Seite eine Kopfzeile, die es auf css zurücksetzt. Er hat jedoch gesagt, dass er Probleme mit WordPress hatte, also könnte die Laufleistung variieren.

Verwandte Themen