protected function _commentCB($m)
    {
        $hasSurroundingWs = (trim($m[0]) !== $m[1]);
        $m = $m[1]; 
        // $m is the comment content w/o the surrounding tokens, 
        // but the return value will replace the entire comment.
        if ($m === 'keep') {
            return '/**/';
        }
        if ($m === '" "') {
            // component of http://tantek.com/CSS/Examples/midpass.html
            return '/*" "*/';
        }
        if (preg_match('@";\\}\\s*\\}/\\*\\s+@', $m)) {
            // component of http://tantek.com/CSS/Examples/midpass.html
            return '/*";}}/* */';
        }
        if ($this->_inHack) {
            // inversion: feeding only to one browser
            if (preg_match('@
                    ^/               # comment started like /*/
                    \\s*
                    (\\S[\\s\\S]+?)  # has at least some non-ws content
                    \\s*
                    /\\*             # ends like /*/ or /**/
                @x', $m, $n)) {
                // end hack mode after this comment, but preserve the hack and comment content
                $this->_inHack = false;
                return "/*/{$n[1]}/**/";
            }
        }
        if (substr($m, -1) === '\\') { // comment ends like \*/
            // begin hack mode and preserve hack
            $this->_inHack = true;
            return '/*\\*/';
        }
        if ($m !== '' && $m[0] === '/') { // comment looks like /*/ foo */
            // begin hack mode and preserve hack
            $this->_inHack = true;
            return '/*/*/';
        }
        if ($this->_inHack) {
            // a regular comment ends hack mode but should be preserved
            $this->_inHack = false;
            return '/**/';
        }
        // Issue 107: if there's any surrounding whitespace, it may be important, so 
        // replace the comment with a single space
        return $hasSurroundingWs // remove all other comments
            ? ' '
            : '';
    }
protected function _commentCB($m)
    {
        $hasSurroundingWs = (trim($m[0]) !== $m[1]);
        $m = $m[1]; 
        // $m is the comment content w/o the surrounding tokens, 
        // but the return value will replace the entire comment.
        if ($m === 'keep') {
            return '/**/';
        }
        if ($m === '" "') {
            // component of http://tantek.com/CSS/Examples/midpass.html
            return '/*" "*/';
        }
        if (preg_match('@";\\}\\s*\\}/\\*\\s+@', $m)) {
            // component of http://tantek.com/CSS/Examples/midpass.html
            return '/*";}}/* */';
        }
        if ($this->_inHack) {
            // inversion: feeding only to one browser
            if (preg_match('@
                    ^/               # comment started like /*/
                    \\s*
                    (\\S[\\s\\S]+?)  # has at least some non-ws content
                    \\s*
                    /\\*             # ends like /*/ or /**/
                @x', $m, $n)) {
                // end hack mode after this comment, but preserve the hack and comment content
                $this->_inHack = false;
                return "/*/{$n[1]}/**/";
            }
        }
        if (substr($m, -1) === '\\') { // comment ends like \*/
            // begin hack mode and preserve hack
            $this->_inHack = true;
            return '/*\\*/';
        }
        if ($m !== '' && $m[0] === '/') { // comment looks like /*/ foo */
            // begin hack mode and preserve hack
            $this->_inHack = true;
            return '/*/*/';
        }
        if ($this->_inHack) {
            // a regular comment ends hack mode but should be preserved
            $this->_inHack = false;
            return '/**/';
        }
        // Issue 107: if there's any surrounding whitespace, it may be important, so 
        // replace the comment with a single space
        return $hasSurroundingWs // remove all other comments
            ? ' '
            : '';
    }
protected function _commentCB ( $ m ) { $ hasSurroundingWs = ( trim ( $ m [ 0 ] ) !== $ m [ 1 ] ) ; $ m = $ m [ 1 ] ; // $m is the comment content w/o the surrounding tokens,  // but the return value will replace the entire comment. if ( $ m === 'keep' ) { return '/**/' ; } if ( $ m === '" "' ) { // component of http://tantek.com/CSS/Examples/midpass.html return '/*" "*/' ; } if ( preg_match ( '@";\\}\\s*\\}/\\*\\s+@' , $ m ) ) { // component of http://tantek.com/CSS/Examples/midpass.html return '/*";}}/* */' ; } if ( $ this -> _inHack ) { // inversion: feeding only to one browser if ( preg_match ( '@
                    ^/               # comment started like /*/
                    \\s*
                    (\\S[\\s\\S]+?)  # has at least some non-ws content
                    \\s*
                    /\\*             # ends like /*/ or /**/
                @x' , $ m , $ n ) ) { // end hack mode after this comment, but preserve the hack and comment content $ this -> _inHack = false ; return "/*/{$n[1]}/**/" ; } } if ( substr ( $ m , - 1 ) === '\\' ) { // comment ends like \*/ // begin hack mode and preserve hack $ this -> _inHack = true ; return '/*\\*/' ; } if ( $ m !== '' && $ m [ 0 ] === '/' ) { // comment looks like /*/ foo */ // begin hack mode and preserve hack $ this -> _inHack = true ; return '/*/*/' ; } if ( $ this -> _inHack ) { // a regular comment ends hack mode but should be preserved $ this -> _inHack = false ; return '/**/' ; } // Issue 107: if there's any surrounding whitespace, it may be important, so  // replace the comment with a single space return $ hasSurroundingWs // remove all other comments ? ' ' : '' ; }
Process a comment and return a replacement

@param array $m regex matches

@return string
Process a comment and return a replacement