login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Handige scripts > CSS Compressor

CSS Compressor

Auteur: Martijn! (phphulp.nl) - 29 oktober 2007 - 14:54 - Gekeurd door: Ibrahim - Hits: 5616 - Aantal punten: (0 stemmen)



Ik wou een script dat code in alle bestanden die css, html, php of javascript bevat kon vereenvoudigen, na wat zoekwerk heb ik een script gevonden die een opgegeven css-bestand kon parsen naar css-bestand zonder overbodige spaties, ;, enters, commentaar enz. Dit script is alleen maar handig voordat je de css-bestanden op het internet zet (omdat het kleiner is, en minder bruikbaar maakt voor andere mensen omdat de commentaar toch verwijderd word).

Ik hoop dat dit voor sommige mensen handig zou zijn (en zit daarom ook bij handige scripts). Ik wil zo rap mogelijk een versie dat ook php, javascript en html in een opgegeven map kan parsen tot een kleiner bestand (zonder te zippen of zo) en output in een zip-bestand, die je vervolgens kan downloaden (en uploaden op de host). Wat voorlopig voor mij veel te moeilijk is op dit ogenblik.

De uitleg zit in de script en voor de rest hoor ik heel graag suggesties wat er beter kan.  

Bron: http://www.phphulp.nl/php/scripts/1/1145/

Code:
Voorbeeld:
  1. <?
  2. //Let op bij dubbele haakjes: \ word dan \\
  3. $sResultaat = compress_css_file('C:\htdocs\style.css');
  4. echo $sResultaat;
  5. ?>


  1. /**
  2.  * Verwijderd nutteloze tekens uit een CSS bestand.
  3.  *
  4.  * @param string $_sFullPath | Volledige pad naar het CSS bestand (b.v.: "c:\pad\style.css" of "/foo/bar/style.css")
  5.  * @return string / boolean false
  6.  */
  7. function compress_css_file( $_sFullPath )
  8. {
  9. if( !file_exists($_sFullPath) )
  10. {
  11. return false;
  12. }
  13.  
  14. # Lees CSS bestand in
  15. $sContent = file_get_contents($_sFullPath);
  16.  
  17. # Verwijder CSS kommentaar
  18. $sContent = preg_replace('/\/\*.*?\*\//s', '', $sContent);
  19.  
  20. # Verwijder alle enters en tabs uit de inhoud van het CSS bestand
  21. $sContent = str_replace(array("\r", "\n", "\t"), '', $sContent);
  22.  
  23. # Whitespaces rond bepaalde tekens verwijderen
  24. $sContent = preg_replace('/\s*({|}|;|:|,)\s*/', '$1', $sContent);
  25.  
  26. # Verwijder alle dubbele spaties
  27. $sContent = preg_replace('/ {2,}/', '', $sContent);
  28.  
  29. # Grijp alle {....} blokken
  30. if( preg_match_all('/{.*?}/s', $sContent, $aMatch) )
  31. {
  32. $aMatch[0] = array_unique($aMatch[0]);
  33.  
  34. foreach( $aMatch[0] as $k => $v )
  35. {
  36. # Verwijder laatste ";" van laatste statement in een blok
  37. $l = strlen($v);
  38. if( $v[$l-2] == ';' )
  39. {
  40. $v = substr($v, 0, $l-2) . '}';
  41. }
  42.  
  43. # Vervang het nieuw blok met het oude.
  44. $sContent = str_replace($aMatch[0][$k], $v, $sContent);
  45.  
  46. } # end foreach
  47.  
  48. } # end if
  49.  
  50. return $sContent;
  51.  
  52. } # end method compress_css_file
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (1)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.029s