エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【PHP】HTMLのclassを指定して要素を取得。DomCrawler【209日目】

こんな時に使う

<div class="aaa">
    <p class="aaa">aaaaa</p>
    <img src="/test/img.png">
</div>

これの、src部分 /test/img.pngが欲しい。

DomCrawler使ってみよう

これ使うと、CSSセレクタ使って取得が出来る。

簡単。見やすい。

■DomCrawler
https://symfony.com/doc/current/components/dom_crawler.html

テスト用コード

(Laravelでphp artisan tinkerとかしていただければ試せます)

use Symfony\Component\DomCrawler\Crawler;

$html = <<< EOF
<div class="aaa">
<p class="aaa">aaaaa</p>
<img src="/test/img.png">
</div>
EOF;

$crawler = new Crawler($html);
$srcs = $crawler->filter('.aaa img')->each(function (Crawler $c) {
return $c->attr('src');
});

結果

=> [
"/test/img.png",
]