Hallöchen,
für xenos 32k Wettkampf habe ich mir mal ein kleines PHP Script gebaut, das einen Dateinamen als Parameter übergeben bekommt (der name ist 'f'). Diese Datei ist eine mit bzip2 komprimierte HTML Datei, bzw. ein Teil davon. Dieses Script entpackt also die Datei, deren Namen es übergeben bekommen hat und gibt diese Datei dann aus, wobei allerdings vorher noch ein (ebenfalls komprimierter) Header, danach ein Footer und zwischendrin für alle Seiten gemeinsames CSS sowie das Ende des Headers eingeflochten werden. Das Script sieht im Moment so aus:
was aufgerollt so aussieht:
Dabei ist "a" der gemeinsame Header, "c" ist der gemeinsame Footer, "e" ist das Ende des Headers und "d" ist das gemeinsame CSS. Das Ende des Headers und der Punkt, an dem das CSS eingebunden werden muss, werden durch zwei Tags in den komprimierten HTML Daten markiert, <!> steht dabei für "hier endet der Header" und <> steht für "Hier muss das CSS hin". "m" steht für eine Defaultseite, die geöffnet wird, wenn kein Parameter übergeben wurde.
In der gepackten Form mit so wenig Whitespaces und Linebreaks wie möglich nimmt das Script 135 Byte ein. Sieht jemand eine Möglichkeit, mit der ich noch etwas mehr Platz sparen kann? Die Konformität an reguläres PHP ist mir dabei weniger wichtig als die Funktion des Scriptes, die so erhalten bleiben soll (auf bzclose($h), php und ?> und "" um die meisten Strings hab ich ja schon verzichtet, wie man sehen kann), wichtig ist allerdings, dass das Script weiterhin Standardkonformes HTML 4.01 Strict ausspuckt (also der : beim trinity operator erhalten bleibt)
mfG, farhaven
für xenos 32k Wettkampf habe ich mir mal ein kleines PHP Script gebaut, das einen Dateinamen als Parameter übergeben bekommt (der name ist 'f'). Diese Datei ist eine mit bzip2 komprimierte HTML Datei, bzw. ein Teil davon. Dieses Script entpackt also die Datei, deren Namen es übergeben bekommen hat und gibt diese Datei dann aus, wobei allerdings vorher noch ein (ebenfalls komprimierter) Header, danach ein Footer und zwischendrin für alle Seiten gemeinsames CSS sowie das Ende des Headers eingeflochten werden. Das Script sieht im Moment so aus:
Code:
<? b(a);b($_GET[f]);b(c);function b($f){if(!$f)$f=m;$h=bzopen($f,r);while($l=fgets($h)){if($l=="<!>
")b(e);($l=="<>
")?b(d):print$l;}}
was aufgerollt so aussieht:
Code:
<?
b(a);
b($_GET[f]);
b(c);
function b($f)
{ if(!$f)
$f=m;
$h=bzopen($f,r);
while($l=fgets($h))
{ if($l=="<!>\n")
b(e);
($l=="<>\n") ? b(d) : print $l;
}
}
Dabei ist "a" der gemeinsame Header, "c" ist der gemeinsame Footer, "e" ist das Ende des Headers und "d" ist das gemeinsame CSS. Das Ende des Headers und der Punkt, an dem das CSS eingebunden werden muss, werden durch zwei Tags in den komprimierten HTML Daten markiert, <!> steht dabei für "hier endet der Header" und <> steht für "Hier muss das CSS hin". "m" steht für eine Defaultseite, die geöffnet wird, wenn kein Parameter übergeben wurde.
In der gepackten Form mit so wenig Whitespaces und Linebreaks wie möglich nimmt das Script 135 Byte ein. Sieht jemand eine Möglichkeit, mit der ich noch etwas mehr Platz sparen kann? Die Konformität an reguläres PHP ist mir dabei weniger wichtig als die Funktion des Scriptes, die so erhalten bleiben soll (auf bzclose($h), php und ?> und "" um die meisten Strings hab ich ja schon verzichtet, wie man sehen kann), wichtig ist allerdings, dass das Script weiterhin Standardkonformes HTML 4.01 Strict ausspuckt (also der : beim trinity operator erhalten bleibt)
mfG, farhaven