Netgusto\PortalBundle\Twig\PortalExtension::extractAppAndRewriteAssetsUrl PHP Метод

extractAppAndRewriteAssetsUrl() приватный Метод

private extractAppAndRewriteAssetsUrl ( $content, $assetprefix, $kept = [] )
    private function extractAppAndRewriteAssetsUrl($content, $assetprefix, $kept = array())
    {
        # On récupère les balises script et link, et on les réécrit
        $parts = array();
        preg_match('%<head>(?P<head>.*?)</head>.*?<body>(?P<body>.*?)</body>%smixu', $content, $parts);
        /*
        preg_replace_callback('%<link\s+.*?>%smix', function($match) use (&$kept) {
            $kept[] = $match[0] . '</link>';
        }, $parts['head']);
        
        preg_replace_callback('%<script\s+.*?>%smix', function($match) use (&$kept) {
            $kept[] = $match[0]  . '</script>';
        }, $parts['head']);
        */
        $parts['body'] = preg_replace_callback('%<script\\s+.*?>%smix', function ($match) use(&$kept) {
            $kept[] = $match[0] . '</script>';
        }, $parts['body']);
        $processUrls = function ($content, $assetprefix) {
            return preg_replace_callback('%(?P<attr>(src|href))\\s*?=\\s*?(?P<quote>\'|")(?P<value>.*?)\\3%smix', function ($match) use($assetprefix) {
                if (preg_match('%^(//|https?://)%', $match['value'])) {
                    return $match[0];
                }
                return $match['attr'] . "=" . $match['quote'] . $assetprefix . ltrim($match['value'], '/') . $match['quote'];
            }, $content);
        };
        return array('html' => $processUrls($parts['body'], $assetprefix), 'assets' => $processUrls(implode("\n", $kept), $assetprefix));
    }