Symfony DomCrawler Абсолютные URL скриптов и таблиц стилей

0

Есть ли способ получить абсолютные URL-адреса скриптов и таблиц стилей? Для ссылок это можно сделать простым способом:

$crawler = new Crawler($html, $url);
$crawler->filter('a')->each(function (Crawler $node, $i) {
     $href = $node->link()->getUri();
});

Но это не работает для js и css.

Теги:

1 ответ

1

Вы пробовали это?

$crawler = new Crawler($html, $url);
$crawler->filter('link')->each(function (Crawler $node, $i) {
     $href = $node->attr('href');
});

UPDATE2

    $html = <<<'HTML'
<!DOCTYPE html>
<html>
    <head>
       <meta name="viewport" content="width=device-width, initial-scale=1" />
       <link rel="apple-touch-icon" type="image/png" href="/apple-touch-icon.png">
       <script type="text/javascript" src="/js/v5/all.js?v=4"></script>
    </head>
    <body>
       <img src="/images/v5/logos/header-logo.svg" alt="Symfony" class="img-responsive" />
       <p class="message">Hello World!</p>
       <p>Hello Crawler!</p>
    </body>
</html>
    HTML;

    $crawler = new Crawler($html);

    $websiteName = 'http://myCoolWebsite.com';

    var_dump($websiteName . $crawler->filter('link')->first()->attr('href'));
    var_dump($websiteName . $crawler->filter('img')->first()->attr('src'));
    var_dump($websiteName . $crawler->filter('script')->first()->attr('src'));

ВЫВОД:

string(45) "http://myCoolWebsite.com/apple-touch-icon.png"
string(56) "http://myCoolWebsite.com//images/v5/logos/header-logo.svg"
string(41) "http://myCoolWebsite.com/js/v5/all.js?v=4"
  • 0
    Вы имели в виду $ crawler-> filter ('link')? Потому что нет тега 'stylesheet'. Если так - да, я попробовал это. А для «script», «link» и «img» это не работает.
  • 0
    К сожалению !! исправлено, извините за это
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню