~automne-team/automne/4.2

« back to all changes in this revision

Viewing changes to automne/cssmin/cssmin.php

  • Committer: sebastien
  • Date: 2008-11-26 17:12:36 UTC
  • Revision ID: sebastien_sebastien-20081126171236-16r3kxfuz2kmq2qe
Tags: V4_0_0a0
4.0.0a0 :
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * cssmin.php - A simple CSS minifier.
 
4
 * --
 
5
 * 
 
6
 * <code>
 
7
 * include("cssmin.php");
 
8
 * file_put_contents("path/to/target.css", cssmin::minify(file_get_contents("path/to/source.css")));
 
9
 * </code>
 
10
 * --
 
11
 * 
 
12
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 
 
13
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
 
14
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
 
15
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 
16
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
17
 * --
 
18
 *
 
19
 * @package     cssmin
 
20
 * @author              Joe Scylla <joe.scylla@gmail.com>
 
21
 * @copyright   2008 Joe Scylla <joe.scylla@gmail.com>
 
22
 * @license     http://opensource.org/licenses/mit-license.php MIT License
 
23
 * @version     1.0 (2008-01-31)
 
24
 */
 
25
class cssmin
 
26
        {
 
27
        /**
 
28
         * Minifies stylesheet definitions
 
29
         *
 
30
         * @param       string  $v      Stylesheet definitions as string
 
31
         * @return      string          Minified stylesheet definitions
 
32
         */
 
33
        public static function minify($v) 
 
34
                {
 
35
                $v = trim($v);
 
36
                $v = str_replace("\r\n", "\n", $v);
 
37
        $search = array("/\/\*[\d\D]*?\*\/|\t+/", "/\s+/", "/\}\s+/");
 
38
        $replace = array(null, " ", "}\n");
 
39
                $v = preg_replace($search, $replace, $v);
 
40
                $search = array("/\\;\s/", "/\s+\{\\s+/", "/\\:\s+\\#/", "/,\s+/i", "/\\:\s+\\\'/i", "/\\:\s+([0-9]+|[A-F]+)/i");
 
41
        $replace = array(";", "{", ":#", ",", ":\'", ":$1");
 
42
        $v = preg_replace($search, $replace, $v);
 
43
        $v = str_replace("\n", null, $v);
 
44
        return $v;      
 
45
                }
 
46
        }
 
47
?>
 
 
b'\\ No newline at end of file'