HTML parse Получить все элементы используйте $ node-> c14n () - PullRequest
0 голосов
/ 07 февраля 2020

Функция $ node-> c14n () возвращает только первый узел с изображением, но на странице много изображений. Как получить следующий узел или все узлы?

  $url = 'https://yandex.ru/maps/18/petrozavodsk/house/ulitsa_drevlyanka_10/Z00YdQZiSE0CQFhrfXt2cX1qbQ==/?ll=34.312185%2C61.770199&photos%5Bpoint%5D=34.312185%2C61.770199&sll=34.322750%2C61.783086&sspn=0.037851%2C0.009917&z=16';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    @$dom = new DOMDocument();
    @$dom->loadHTML($result);
    $xpath = new DOMXPath($dom);
    $nodeList = $xpath->query("//div");
    $srcArray = array();
    foreach ($nodeList as $node) {
        if ($node->getAttribute('class') == "app") {
            $child = $node->c14n(); //почему с14n() получает только одну
            $html = new domDocument();
            $html->loadHTML($child);
            $images = $html->getElementsByTagName('img');
            foreach ($images as $image) {
                //   echo $image->getAttribute('src');
                $srcArray[] = $image->getAttribute('src');
            }
        }
}
...