DotsUnited\BundleFu\Filter\CssUrlRewriteFilter::rewriteUrl PHP Method

rewriteUrl() protected method

Callback which rewrites matched CSS ruls.
protected rewriteUrl ( array $matches ) : string
$matches array
return string
    protected function rewriteUrl($matches)
    {
        $matchedUrl = trim($matches['url']);
        // First check also matches protocol-relative urls like //example.com/images/bg.gif
        if ('/' === $matchedUrl[0] || false !== strpos($matchedUrl, '://') || 0 === strpos($matchedUrl, 'data:')) {
            return $matches[0];
        }
        $sourceUrl = dirname($this->file);
        if ('.' === $sourceUrl) {
            $sourceUrl = '/';
        }
        $path = $this->bundleUrl;
        if (false !== strpos($path, '://') || 0 === strpos($path, '//')) {
            // parse_url() does not work with protocol-relative urls
            list(, $url) = explode('//', $path, 2);
            list(, $path) = explode('/', $url, 2);
        }
        $bundleUrl = dirname($path);
        if ('.' === $bundleUrl) {
            $bundleUrl = '/';
        }
        $url = $this->rewriteRelative($matchedUrl, $sourceUrl, $bundleUrl);
        return str_replace($matchedUrl, $url, $matches[0]);
    }