Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [funkcja]Kompresor CSS
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
HgReed
Witam.
Na własne potrzeby, chcą zmniejszyć choć trochę objętość moich plików CSS poszukiwałem do tego funkcji. Gdy żadna z tych przeze mnie znalezionych mi nie pasowała - napisałem własną.
Usuwa ona wszystkie niepotrzebne spacje, łamania linii i komentarze.
  1. function lessCSS($CSS)
  2. {
  3. return preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '',
  4. str_replace('} ','}',
  5. str_replace(' }','}',
  6. str_replace(' } ','}',
  7. str_replace('{ ','{',
  8. str_replace(' {','{',
  9. str_replace(' { ','{',
  10. str_replace(', ',',',
  11. str_replace(' ,',',',
  12. str_replace(' , ',',',
  13. str_replace('; ',';',
  14. str_replace(' ;',';',
  15. str_replace(' ; ',';',
  16. str_replace(': ',':',
  17. str_replace(' :',':',
  18. str_replace(' : ',':',
  19. str_replace("\r\n",'',
  20. str_replace("\r",'',
  21. str_replace("\n",'',
  22. str_replace("\t",'',
  23. str_replace(' ','',
  24. str_replace(' ' , '',
  25. str_replace(' ' , ' ',
  26. $CSS)))))))))))))))))))))));

str_replace() jest powielane, gdyż podczas używania w nich array'ów nie usuwało wszystkich, niepotrzebnych spacji.

Kod jest w ogóle nie czytelny, ale waży dużo mniej (np. w moim przypadku prawie 36%).

Najlepiej używać jej wraz z ob_buffer(). Przykład:
  1. ob_start("lessCSS");
  2. require 'plik.css';
  3. require 'innyPlik.css';
  4. require 'stoInncyhPlików.css';


Koncepcja zaczerpnięta z manual'a (komentarze str_replace()).
kwejkowo
oo smile.gif pomocne, przyda się.
redeemer
Słabo szukałeś. Przykład pierwszy z brzegu (o wiele bardziej zaawansowany niż Twoja funkcja) https://github.com/brunschgi/cssmin/blob/master/cssmin.php
Pawel_W
Cytat(redeemer @ 16.06.2014, 09:40:29 ) *
Słabo szukałeś. Przykład pierwszy z brzegu (o wiele bardziej zaawansowany niż Twoja funkcja) https://github.com/brunschgi/cssmin/blob/master/cssmin.php

i napisany rok później guitar.gif
tzm
Cytat(Pawel_W @ 10.12.2014, 17:15:51 ) *
i napisany rok później guitar.gif



facepalmxd.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.