css-compressor

Gesponsorde koppelingen

PHP script bestanden

  1. css-compressor

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
/**
 * Verwijderd nutteloze tekens uit een CSS bestand.
 *
 * @param string $_sFullPath            | Volledige pad naar het CSS bestand (b.v.: "c:\pad\style.css" of "/foo/bar/style.css")
 * @return string / boolean false
 */

function compress_css_file( $_sFullPath )
{

    if( !file_exists($_sFullPath) )
    {

        return false;
    }

    
    # Lees CSS bestand in
    $sContent = file_get_contents($_sFullPath);
    
    # Verwijder CSS kommentaar
    $sContent = preg_replace('/\/\*.*?\*\//s', '', $sContent);
    
    # Verwijder alle enters en tabs uit de inhoud van het CSS bestand
    $sContent = str_replace(array("\r", "\n", "\t"), '', $sContent);
    
    # Whitespaces rond bepaalde tekens  verwijderen
    $sContent = preg_replace('/\s*({|}|;|:|,)\s*/', '$1', $sContent);
    
    # Verwijder alle dubbele spaties
    $sContent = preg_replace('/ {2,}/', '', $sContent);
    
    # Grijp alle {....} blokken
    if( preg_match_all('/{.*?}/s', $sContent, $aMatch) )
    {

        $aMatch[0] = array_unique($aMatch[0]);
        
        foreach( $aMatch[0] as $k => $v )
        {

            # Verwijder laatste ";" van laatste statement in een blok
            $l = strlen($v);
            if( $v[$l-2] == ';' )
            {

                $v = substr($v, 0, $l-2) . '}';
            }


            # Vervang het nieuw blok met het oude.            
            $sContent = str_replace($aMatch[0][$k], $v, $sContent);
        
        }
# end foreach
        
    } # end if
    
    return $sContent;

}
# end method compress_css_file
?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.