スポンサーリンク

【PHP】URLからOGPに設定された画像を取得して保存する

URL のリンク先のページ概要を表示する際には、OGP の画像を利用すると便利です。
3時のOYATSU」でもおやつニュースは OGP の og:image の画像を表示しています。

下記で og:image の URL を取得できます。

function get_og_image_url ( $content )
{
    if (preg_match_all( "<meta property=\"og:([^\"]+)\" content=\"([^\"]+)\">", $content, $ogp_list )){
        if (is_array($ogp_list) && isset($ogp_list[1])) {
            for ($i = 0; $i < count($ogp_list[1]); $i++) {
                $ogp_result[$ogp_list[1][$i]] = $ogp_list[2][$i];
            }
        }
        if (isset($ogp_result['image'])) {
           return $ogp_result['image'];
        }
    }
    return false;
}

この get_og_image_url に パラメータとして解析したいページの html の中身を渡すと、og:image の URL が返ってきます。
og:image が存在しない場合は false が返ってきます。

$image_url = get_og_image_url($html);
if ($image_url) {
    $image = file_get_contents($image_url);
    $file_name = "image_name.jpg";
    file_put_contents($file_name, $image);
}

あとは取得した URL から画像をダウンロードして、指定したディレクトリに保存すれば OK です。

※この記事の内容は https://3jino-oyatsu.com/blog/85/ からお引越ししたものです

タイトルとURLをコピーしました