Regex - Js-files Reduzieren Mit Php
#1
geschrieben 05. Januar 2010 - 11:02
Habe mir eine PHP-Klasse geschrieben, die CSS- und JS-Files einlesen, zusammenfügen und komprimieren kann (spart Traffic und bringt Performance). CSS-Files kann ich gut komprimieren (überflüssige Zeichen, Kommentare usw. entfernen). Bei JS-Files steh ich auf dem Schlauch, vielleicht kann mir jemand helfen.
CSS-Inhalte (eingelesen in einen String) reduziere ich folgendermassen:
$input = preg_replace('!/\*([^*]{2,})*\*+([^/][^*]*\*+)*/!', '', $input);
$input = str_replace(array("\r\n", "\n\n", "\n", "\r", " ", " "), "", $input);
Bei JS haut das nicht hin (z.B. wg. der verschiedenen Kommentaren /* ...*/, //)
$input = str_replace(array("\n\n", "\t", " ", " "), array("\n", "", "", ""), $input);
Wie krieg ich das schöner hin (alle Kommentare entfernen, Leerzeilen löschen usw.).
Gruss
// CH
Anzeige
#2
geschrieben 05. Januar 2010 - 11:25
#3
geschrieben 05. Januar 2010 - 11:52
#4
geschrieben 05. Januar 2010 - 12:05
Zitat
Habe ich auch nicht gefordert. Du sollst dir einfach die Klassen anschauen und dir die entsprechenden Regex-Aufrufe rausziehen.
Der CSSCompressor hat z.B. so interessante Sachen, wie:
// Remove the spaces after the things that should not have spaces after them.
css = css.replaceAll("([!{}:;>+\\(\\[,])\\s+", "$1");
// Replace 0(px,em,%) with 0.
css = css.replaceAll("([\\s:])(0)(px|em|%|in|cm|mm|pc|pt|ex)", "$1$2");
Ansonsten kannst du den mal versuchen:
/(^[\/]{2}[^\n]*)|([\n]{1,}[\/]{2}[^\n]*)/g;
#5
geschrieben 05. Januar 2010 - 22:17
#6
geschrieben 06. Januar 2010 - 08:04
Was mir spontan auffällt ist, dass der Regex nach "\n" sucht. Je nach verwendetem Zeichensatz kann es jedoch auch "\r\n" oder "\r" sein.
#7
geschrieben 06. Januar 2010 - 21:27
#8
geschrieben 06. Januar 2010 - 21:59
Wo siehst du dort HTML-Elemente? Und nein, das ganz oben ist ein Kommentar.
Zitat
Das musst du mir jetzt mal erklären. Vor allem, da du sowieso deine "reduzierten" Dateien sendest.
#9
geschrieben 07. Januar 2010 - 08:24
Zitat
In Version 2.1 kam u.a. folgende Syntax zum Einsatz
if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");
Zitat
Reduzierung HTTP-Requests meiner Domain = bessere Performance.
// CH
#10
geschrieben 07. Januar 2010 - 10:03
Zitat
Was du damit bezwecken möchtest, ist mir klar, mache selber viel in diese Richtung. Allerdings hat die Reduzierung von Requests nichts Caching zu tun. Caching regelst du über den HTTP-Header "Cache-Control" und dem Attribute max-age.
Wenn ich dich aber richtig verstanden habe, kriegen die Besucher deiner Seite doch sowieso nichts von dem Google-Aufruf mit, da du denen deine abgespeckten Dateien schickst. Sie schicken also nur einen Request an dich und nicht an Google.
#11
geschrieben 07. Januar 2010 - 11:25

Hilfe
Neues Thema
Antworten

Nach oben


