Same name and namespace in other branches
  1. 6.0.x src/Asset/CssOptimizer.php \Drupal\advagg\Asset\CssOptimizer::addDnsPrefetch() 1 comment
  2. 8.x-3.x src/Asset/CssOptimizer.php \Drupal\advagg\Asset\CssOptimizer::addDnsPrefetch() 1 comment
  3. 8.x-4.x src/Asset/CssOptimizer.php \Drupal\advagg\Asset\CssOptimizer::addDnsPrefetch() 1 comment

Overrides AssetOptimizer::addDnsPrefetch

File

src/Asset/CssOptimizer.php, line 25

Class

CssOptimizer
The CSS Optimizer.

Namespace

Drupal\advagg\Asset

Code

protected function addDnsPrefetch(array $asset) {
    $prefetch = [];
    if (!isset($asset['contents'])) {
        return $prefetch;
    }
    $matches = [];
    $pattern = '%url\\(\\s*+[\'"]?+(http:\\/\\/|https:\\/\\/|\\/\\/)([^\'"()\\s]++)[\'"]?+\\s*+\\)%i';
    preg_match_all($pattern, $asset['contents'], $matches);
    if (!empty($matches[1])) {
        foreach ($matches[1] as $key => $match) {
            $parse = @parse_url($match . $matches[2][$key]);
            if (!empty($parse['host'])) {
                $prefetch[] = $parse['host'];
            }
        }
    }
    return $prefetch;
}