PHP replace and modify

Hallo Leute,

ich möchte gerade einen CSS code modifizieren und aufsplitten wie hier beschrieben.

div_einstein {
width: 190px;
height: 80px;
font-style: bold;
}

div_tabelle {
width: 90px;
height: 180px;
font-style: bold;
}

noch weitere divs …diese sollen so umgewandelt werden:div_einstein {width: 190px;}
div_einstein {height: 80px;}
div_einstein {font-style: bold;}

div_tabelle {width: 90px;}
div_tabelle {height: 180px;}
div_tabelle {font-style: bold;}

Ich weiß das ich den ; mit ;}div { durch den php Befehl erg_replace ersetzen kann.
Aber wie kann ich den Anhange des divs (_einstein, _tabelle,…) in diese replace function einfügen?

Vielen Dank für mögliche Lsgen.Lg,
Chris

Hallo Chris,

deine Frage ist für meinen Geschmack zu wirr gestellt, weil ich nicht erkennen kann, was du jetzt eigentlich willst.

Ich weiß das ich den ; mit ;}div { durch den php Befehl
erg_replace ersetzen kann.

Mach mal ein konkretes Minimalbeispiel.

Aber wie kann ich den Anhange des divs (_einstein,
_tabelle,…) in diese replace function einfügen?

Was ist denn der Anhange des divs? Ohne Minimalbeispiel wird das so nichts.

Günther

P.S. tu uns einen Gefallen und benutze den PRE-Knopf für Codebeispiele, dann kann man das besser lesen.

Hallo Günter,

danke für deine AW.

Kurz beschrieben das:
1 Schritt
div_einstein {
width: 190px;
height: 80px;
font-style: bold;
}

wird zu dem:
2 Schritt
div_einstein {height: 80px;}
div_einstein {font-style: bold;}

Wenn es nur div mit dem Namen div_einstein geben würde kein problem.
Aber wenn das erste div_einstein heißt und das zweite div div_table heißt und das dritte div wieder anders heißt,… wird das zu einem Problem.

Anschließend würde ich dann die divs mit den gleichen css Eigenschaften in eine {} einpacken zB.:
3 Schritt
div_einstein, div_tabelle { width: 190px; }

Ich hoff dass ist verständlicher?
Nur weiß ich von ersten auf den zweiten bzw dritten Schritt komme?

Lg,
Chris

Hallo Chris,

Kurz beschrieben das:
1 Schritt
div_einstein {
width: 190px;
height: 80px;
font-style: bold;
}
2 Schritt
div_einstein {height: 80px;}
div_einstein {font-style: bold;}
3 Schritt
div_einstein, div_tabelle { width: 190px; }

Warum willst du sowas in PHP machen? Hast du eine CSS-Datei, die du einmalig so aufteilen willst? Da würde ich ganz stumpf hergehen und das von Hand im Editor deiner Wahl machen. Günstige Gelegenheit, das mal zu optimieren. Und wenn dein Algorithmus dabei Mist baut, wird die zugehörige Seite entstellt.

Sowas würde ich nicht selbst automatisieren, sowas macht man ja auch nicht so oft.

Ansonsten musst du halt nach den richtigen Ausdrücken suchen.

also… du holst dir mit file-get-contents() den Dateiinhalt und läufst den Zeichenweise durch und prüfst auf die entsprechenden Zeichen. Also von Schritt 1 auf Schritt 2 musst du eben zunächst nach der öffnenden geschweiften Klammer suchen und darin nach dem Semikolon. Das machst du solange, bis du wieder eine schließende geschweifte Klammer siehst.

Das speicherst du dir in ein Array weg und hast - wenn du da die Keys klug wählst ganz schnell sowas:

$css[„div“][„einstein“][]=„height: 80px;“

Das kannst du dann mit den üblichen Arrayoperationen auseinandernehmen und als Schritt 3 in eine Struktur bringen, die du magst.

Günther

Stern? Bitte gern.