0
$goutte = new GoutteClient();
$crawler = $goutte->request('GET', 'https://www.website.com');
$reviewContent = $crawler->filter('.review-content');
$rows = $reviewContent->filter('.row');

foreach ($rows as $row) {
    $col1 = $row->filter('.col-md-3');
    $col2 = $row->filter('.col-md-9');
}

エラーを出す$col1

これを使用して動作させることができますがbreak、本物ではないため使用できませんfor loop

$crawler->filter('.row')->each(function (Crawler $row, $i) {
    $col1 = $row->filter('.col-md-3');
    $col2 = $row->filter('.col-md-9');
    ...
    ...
}
4

1 に答える 1

4

問題は、Crawlerインスタンス ( などに格納されて$rowsいる$reviewContent) が DOMElement コンテンツに対して反復されることです。次のように、Crawlerその から各ループ ステップ内に新しいインスタンスを作成できます。DOMElement

foreach ($rows as $domRow) {
  $row = new Crawler($domRow);
  // proceed as in the original code
}
于 2016-05-27T09:42:10.377 に答える