質問: $crawler->filter("table.small td")->each(function ($node){ echo $node->text(); // プレーンテキストを取得 }); ?> としてみたのですが、取れませんでした。 $crawler->filter("table.small a")->each(function ($node)あたりの記載方法を変えればよさそうと思っているのですが、いろいろ試しましたがうまくいきません。 どのように記載すれば両方を取得できるのか教えてください。 よろしくお願いいたします。 追記 有難うございます。 テーブルは下記となります。 name="small" ではなく class="small" でした。大変失礼いたしました。 105-0003 東京都港区新橋1-2-3 105-0004 東京都港区新橋5-6-7
回答: 以下のように一旦trでeachしてそれぞれを配列に入れて返すのはどうでしょうか ``` use Symfony\Component\DomCrawler\Crawler; $html = ' 105-0003 東京都港区新橋1-2-3 105-0004 東京都港区新橋5-6-7 '; $crawler = new Crawler(); $crawler->addHtmlContent($html); $data = $crawler->filter('table.small tr')->each(function($tr) { return array( $tr->filter('td')->eq(0)->filter('a')->attr('href'), $tr->filter('td')->eq(1)->filter('div')->text() ); }); var_dump($data); ```