Проблема получения содержимого из строковой переменной html в php - PullRequest
0 голосов
/ 21 октября 2018

У меня есть этот код:

     $doc = new \DOMDocument();
  $doc->loadHTML($content);


    $links = [];
  $container = $doc->getElementById("content");
  $arr = $container->getElementsByTagName("a");
  foreach($arr as $item) {
    $href =  $item->getAttribute("href");
    $title =  $item->getAttribute("title");
    $links[] = [
      'href' => $href,
      'title' => $title
    ];
  }
  for($i = 0, $l = count($links); $i < $l; ++$i) {
  echo $links[$i]['title'].' '.$links[$i]['href'].'<br />';
}

Структура html такая:

<div class="post-content right-col">
                    <a title="" href="https://www.swisscars.pl/samochody/516321/">
                        <img src="https://swisscars.pl/uploads2/180843_0.jpg" alt="" class="thumb alignleft" height="75" width="75"/>
                    </a>
                    <h2 style="line-height:150%;">
                        <a href="https://www.swisscars.pl/samochody/516321/" rel="bookmark"  title="Renault Kangoo II (96&#8217;011 km)">
                            Renault Kangoo II (96&#8217;011 km)                     </a>
                    </h2>
                Do końca aukcji: <span id="countdown100">2018-10-23 14:00:00 GMT+02:00</span><p>DATA ZAKONCZENIA AUKCJI: 2018-10-23 14:00</p>

                </div>

            </div>

Я хочу получить только значения из атрибута witch тега rel = "bookmark".Пожалуйста, помогите мне с этим.Я пытаюсь использовать функцию hasAttribute, но не работает.Опишите пожалуйста, что я могу получить только содержимое из тега с атрибутом rel = "bookmark".В PHP есть функция hasAttribute () или что-то в этом роде?

Спасибо за помощь

1 Ответ

0 голосов
/ 21 октября 2018

XPath может быть вариантом, вы можете сделать это:

$doc = new \DOMDocument();
$doc->loadHTML($content);

$xpath = new DOMXPath($dom);
$links = $xpath->query('//a[@rel="bookmark"]');

Это должно вернуть DOMNodeList, который вы могли бы циклически просмотреть.

...