$html = file_get_contents($url ); //取得するページの URL
$flag = preg_match_all( "|<meta property=["']og:([^"']+)["'] content=["']([^"']+)["'].*?>|", $html, $result );
//var_dump($result);
if($flag >0){
for( $i = 0; $i < count($result[1]); $i++ ) {
$opg[$result[1][$i]] = $result[2][$i];
}
}
//------------
//表示確認
//-------------
echo $opg['title'] ."<br/>";
echo $opg['url'] ."<br/>";
echo $opg['site_name'] ."<br/>";
echo $opg['image'] ."<br/>";
echo $opg['description'] ."<br/>";
「【PHP】HTML 内の OGP 情報を取得する | MEMO REAL」を参考にしました。連想配列の使えるPHPだとこういう簡略な書き方が可能で便利ですね。
preg_match_all( "<meta property="og:([^"]+)" content="([^"]+)">", $html, $ogp );
引用元の正規表現はこんな感じになってました。これだと「’’」で括られてるタイプだと取得できないので、少し修正しました。ただし私は正規表現が苦手なので見直してください。
参考:
・PHP: preg_match_all - Manual
・PHP: 配列 - Manual
スポンサーリンク