Hallihallo,
ich wollte mal meine CSS-Dateien sortieren...
.. fragt nich warum
Das hier ist lediglich ein Anfang, ein Versuch.
u.A. werden nur CSS-Dateien in einem bestimmtem Format akzeptiert (siehe style.css) und Stylesheet-Eigenschaften, die nicht im Array $order sind, werden gar nicht erst mitsortiert.
Nunja, darum gehts mir momentan noch nicht.
Um was es mir geht ist die eigentliche Sortierung; und zwar, kann man die nicht ressourcensparender erledigen?
Momentan wird insgesammt, für eine normal grose CSS-Datei, einige hundert Male ne Schleife durchlaufen...
Darum bitte ich um etwaige Ideen, wie ich das ganze besser, ressourcensparender erledigen könnte.
Die CSS-Datei vor der Sortierung:
http://85.114.140.132/ex/style.css
Und danach:
http://85.114.140.132/ex/sortiert.style.css
Wie gesagt, bitte nicht den Sinn des ganzen hinterfragen, sondern bitte über die ressourcensparende Bewerkstelligung sich Gedanken machen .
Danke.
ich wollte mal meine CSS-Dateien sortieren...
.. fragt nich warum
Das hier ist lediglich ein Anfang, ein Versuch.
u.A. werden nur CSS-Dateien in einem bestimmtem Format akzeptiert (siehe style.css) und Stylesheet-Eigenschaften, die nicht im Array $order sind, werden gar nicht erst mitsortiert.
Nunja, darum gehts mir momentan noch nicht.
Um was es mir geht ist die eigentliche Sortierung; und zwar, kann man die nicht ressourcensparender erledigen?
Momentan wird insgesammt, für eine normal grose CSS-Datei, einige hundert Male ne Schleife durchlaufen...
Darum bitte ich um etwaige Ideen, wie ich das ganze besser, ressourcensparender erledigen könnte.
PHP-Code:
<?php
$line=array();
$i2=$i=0;
//Datei auslesen und zweidimensionales Array $line füllen
$handle=fopen('style.css', 'r');
while(!feof($handle))
{
$buffer=fgets($handle, 4096);
if(eregi('{', $buffer)&&count($line)!=0)
{
$i2=0;
$i++;
}
$line[$i][$i2]=$buffer;
$i2++;
}
fclose($handle);
//Neues, geordnetes, zweidimensionales Array $sorted aufbauen
$order=array('float', 'height', 'width','margin', 'padding', 'border', 'background', 'color', 'font-size', 'font-style', 'line-height', 'text-decoration', 'list-style');
$sorted=array();
$i2=0;
for($i=0; $i!=count($line); $i++)
{
$i4=0;
$sorted[$i][0]=$line[$i][0];
for($i2=0; $i2!=count($order); $i2++)
{
for($i3=1; $i3!=count($line[$i]); $i3++)
{
if(eregi($order[$i2], $line[$i][$i3]))
{
$i4++;
$sorted[$i][$i4]=$line[$i][$i3];
}
}
}
$sorted[$i][count($line[$i])-1]=$line[$i][count($line[$i])-1];
}
//Ausgabe (Eher unrelevant, vllt. wenn mans testen möchte)
for($i=0; $i!=count($sorted); $i++)
{
for($i2=0; $i2!=count($sorted[$i]); $i2++)
{
echo $sorted[$i][$i2].'<br />';
}
}
?>
http://85.114.140.132/ex/style.css
Und danach:
http://85.114.140.132/ex/sortiert.style.css
Wie gesagt, bitte nicht den Sinn des ganzen hinterfragen, sondern bitte über die ressourcensparende Bewerkstelligung sich Gedanken machen .
Danke.
Kommentar