【PHP】HTML 内の OGP 情報を取得する

RSS がない場合などで、リンク先のページ情報を表示する時などに HTML 内の OGP 情報を取得する方法です。
[PHP]
$html = file_get_contents( 取得するページの URL );
preg_match_all( “<meta property=\”og:([^\”]+)\” content=\”([^\”]+)\”>”, $html, $ogp );
for( $i = 0; $i < count($ogp[1]); $i++ ) {
$result[$ogp[1][$i]] = $ogp[2][$i];
}
$title = $result[‘title’];
$url = $result[‘url’];
$image = $result[‘image’];
echo ‘<a href=”‘ . $url . ‘”><img src=”‘ . $image . ‘” alt=”‘ . $title . ‘” /></a>’;
[/PHP]
<解説>
1行目:HTML を取得します。
2行目:HTML の中から OGP 関連の meta タグを抽出します。
3〜5行目:2行目で抽出した meta タグの情報が $opg に配列として格納されるので、それを取り出し連想配列 $result に格納しています。
6〜8行目:各 OGP 情報を取り出して変数に保存。
9行目:取り出した情報を表示。

【2017.1.8】
・プログラムが間違っていたので修正しました。
・解説を修正しました。