Simple HTMLDOMParserを使用してDOMツリーをトラバースするのに助けが必要です。誰かがそれがどのように機能するかを2番目に見ることができれば、知識のあるPHPコーダーは、私がそれを理解した場合、すぐにそれを理解するはずです。私が立ち往生しているのは、友人のロシアのバスケットボールのWebサイトのdivから記事を入手することです。たとえば、ブログdivは次のようになります。
<div id='columnsList'><div class='item'>
<div class='title'><a href='/ru/columns/1'>Колонка Римантаса Григаса</a></div>
<div class='img'> <img src='/files/columns/grigas.jpg'></div>
<div class='news'>
<a href='/ru/news/3174'>Римантас Григас: о пути на Евробаскет (0)</a>
<a href='/ru/news/1486'>Римантас Григас: об уходе из УГМК и о ближайших планах (1)</a>
<a href='/ru/news/731'>О горниле «Финала восьми» Евролиги (0)</a>
<a href='/ru/news/421'>О новом назначении и о сборной Украины (0)</a>
<a href='/ru/news/299'>О настоящем примере для подражания (0)</a>
</div><div style='clear:left;'></div>
</div>
<div class='item'>
<div class='title'><a href='/ru/columns/2'>Колонка Кирилла Натяжко</a></div>
<div class='img'> <img src='/files/columns/nati.jpg'> </div>
<div class='news'>
<a href='/ru/news/3618'>Кирилл Натяжко: "Хорватов мы не боимся" (2)</a>
<a href='/ru/news/3113'>Кирилл Натяжко: "Необоснованная критика подарила мне дополнительную мотивацию" (1)</a>
<a href='/ru/news/2454'>Кирилл Натяжко: "Мне нечего бояться, пускай лучше боятся меня!" (6)</a>
<a href='/ru/news/325'>Доброе утро, страна! (1)</a>
</div><div style='clear:left;'></div>
</div>
<div class='news'>
//More divs and links
これは、個々の「a」リンクを引き出して表示する方法ですが、私がやりたいのは、すべてを一列に並べるのではなく、基本的にそれらすべてのdivタイトルを取得することです。foreachループでそれを行う方法がわかりません。
foreach ($html->find('div[class=item] a[href*=news]') as $col){
echo $col.'<br>';
}
最初のエコーと一緒に追加してみました:
echo $col->parent()->prev_sibling()->prev_sibling()->a;
それはdiv'news'に戻り、次にdiv' img'まで、そして再びdiv'title'までもう1ノッチ戻る必要があります。これにより、最初のdiv=titleのリンクが取得されます。しかし、私は何も得られません。これを行う方法はありますか?