/**
  * Rewrite file relative URIs as root relative in CSS files
  *
  * @param string $css
  *
  * @param string $currentDir The directory of the current CSS file.
  *
  * @param string $prependAbsolutePath
  *
  * @param string $prependAbsolutePathCallback
  *
  * @param string $docRoot The document root of the web site in which
  * the CSS file resides (default = $_SERVER['DOCUMENT_ROOT']).
  *
  * @param array $symlinks (default = array()) If the CSS file is stored in
  * a symlink-ed directory, provide an array of link paths to
  * target paths, where the link paths are within the document root. Because
  * paths need to be normalized for this to work, use "//" to substitute
  * the doc root in the link paths (the array keys). E.g.:
  * <code>
  * array('//symlink' => '/real/target/path') // unix
  * array('//static' => 'D:\\staticStorage')  // Windows
  * </code>
  *
  * @param int $browserCacheId
  *
  * @param array $browserCacheExtensions
  *
  * @return string
  */
 private static function _rewrite($css, $currentDir, $prependAbsolutePath = null, $prependAbsolutePathCallback = null, $docRoot = null, $symlinks = array(), $browserCacheId = 0, $browserCacheExtensions = array())
 {
     self::$_docRoot = self::_realpath($docRoot ? $docRoot : $_SERVER['DOCUMENT_ROOT']);
     self::$_currentDir = self::_realpath($currentDir);
     self::$_prependAbsolutePath = $prependAbsolutePath;
     self::$_prependAbsolutePathCallback = $prependAbsolutePathCallback;
     self::$_symlinks = array();
     self::$_browserCacheId = $browserCacheId;
     self::$_browserCacheExtensions = $browserCacheExtensions;
     // normalize symlinks
     foreach ($symlinks as $link => $target) {
         $link = $link === '//' ? self::$_docRoot : str_replace('//', self::$_docRoot . '/', $link);
         $link = strtr($link, '/', DIRECTORY_SEPARATOR);
         self::$_symlinks[$link] = self::_realpath($target);
     }
     self::$debugText .= "docRoot    : " . self::$_docRoot . "\n" . "currentDir : " . self::$_currentDir . "\n";
     if (self::$_symlinks) {
         self::$debugText .= "symlinks : " . implode(', ', self::$_symlinks) . "\n";
     }
     self::$debugText .= "\n";
     $css = self::_trimUrls($css);
     // rewrite
     $css = preg_replace_callback('/@import\\s+([\'"])(.*?)[\'"]/', array(self::$className, '_processUriCB'), $css);
     $css = preg_replace_callback('/url\\(\\s*([^\\)\\s]+)\\s*\\)/', array(self::$className, '_processUriCB'), $css);
     return $css;
 }