Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Algorytmy, klasy, funkcje _ [funkcja]Kompresor CSS

Napisany przez: HgReed 10.12.2011, 23:05:30

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 http://www.php.net/preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '',
  4. http://www.php.net/str_replace('} ','}',
  5. http://www.php.net/str_replace(' }','}',
  6. http://www.php.net/str_replace(' } ','}',
  7. http://www.php.net/str_replace('{ ','{',
  8. http://www.php.net/str_replace(' {','{',
  9. http://www.php.net/str_replace(' { ','{',
  10. http://www.php.net/str_replace(', ',',',
  11. http://www.php.net/str_replace(' ,',',',
  12. http://www.php.net/str_replace(' , ',',',
  13. http://www.php.net/str_replace('; ',';',
  14. http://www.php.net/str_replace(' ;',';',
  15. http://www.php.net/str_replace(' ; ',';',
  16. http://www.php.net/str_replace(': ',':',
  17. http://www.php.net/str_replace(' :',':',
  18. http://www.php.net/str_replace(' : ',':',
  19. http://www.php.net/str_replace("\r\n",'',
  20. http://www.php.net/str_replace("\r",'',
  21. http://www.php.net/str_replace("\n",'',
  22. http://www.php.net/str_replace("\t",'',
  23. http://www.php.net/str_replace(' ','',
  24. http://www.php.net/str_replace(' ' , '',
  25. http://www.php.net/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. http://www.php.net/ob_start("lessCSS");
  2. require 'plik.css';
  3. require 'innyPlik.css';
  4. require 'stoInncyhPlików.css';
  5. http://www.php.net/ob_end_flush();


Koncepcja zaczerpnięta z manual'a (komentarze str_replace()).

Napisany przez: kwejkowo 16.06.2014, 00:47:12

oo smile.gif pomocne, przyda się.

Napisany przez: 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

Napisany przez: Pawel_W 10.12.2014, 17:15:51

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

Napisany przez: tzm 10.12.2014, 20:11:38

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



facepalmxd.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)