PHPでOGPタグ(metaタグ)を簡単に取得できる「OpenGraph.php」の利用方法
2025/06/07
PHPでOGPタグ(metaタグ)を取得する際、file_get_contentsやcurlでページ内容を取得し正規表現でタグ部分を抽出していたがこれが結構面倒くさい。何とかならないか調べたところ「OpenGraph.php」ライブラリが良さそう。ライブラリの利用方法とproductタグも取得できるよう変更方法をメモ。
OpenGraph.php
以下よりOpenGraph.phpをダウンロードし、適当なディレクトリにアップロードしておく。
https://github.com/scottmac/opengraph/
利用方法
ソースコード
<?php require 'OpenGraph.php'; $url = 'https://taitan916.info/blog/archives/6910'; $graph = OpenGraph::fetch($url); var_dump($graph);
出力例
上記ソースコードを実行すると以下内容が出力される。
object(OpenGraph)#4 (2) {
["_values":"OpenGraph":private]=>
array(10) {
["locale"]=>
string(5) "ja_JP"
["site_name"]=>
string(27) "勉強したことのメモ"
["type"]=>
string(7) "article"
["title"]=>
string(82) "MySQLで「Uncaught mysqli_sql_exception: BIGINT ~~」エラーの対応方法"
["description"]=>
string(204) "MySQLにて「Uncaught mysqli_sql_exception: BIGINT UNSIGNED value is out of range」というエラーが発生した。原因はUNSIGNED設定しているカラムを負の数にしようとした点。"
["url"]=>
string(41) "https://taitan916.info/blog/archives/6910"
["image"]=>
string(70) "https://taitan916.info/blog/wp-content/uploads/2014/05/msyql-image.gif"
["image:secure_url"]=>
string(70) "https://taitan916.info/blog/wp-content/uploads/2014/05/msyql-image.gif"
["image:width"]=>
string(3) "300"
["image:height"]=>
string(3) "167"
}
["_position":"OpenGraph":private]=>
int(0)
}
productタグの取得
ECサイトだと以下のようなproductタグが存在する場合があり、OpenGraph.phpはそのままだと取得できない。
<meta property="product:price:amount" content="10000"> <meta property="product:price:currency" content="JPY">
productタグを取得するためにはOpenGraph.phpの105行目辺りに以下を追加すること。
if ($tag->hasAttribute('property') &&
strpos($tag->getAttribute('property'), 'product:') === 0) {
$key = strtr(substr($tag->getAttribute('property'), 8), '-', '_');
$page->_values[$key] = $tag->getAttribute('content');
}
所感
正規表現がいらずソースコードも見やすくなるので今後はOpenGraph.phpを使っていきたいところ。
関連記事
-
-
JavaScriptにて「QRCode.js」ライブラリを利用してQRコードを生成する方法
PHPが使えない環境で動的にQRコードを生成したかった。以前にメモしたAPI等の ...
-
-
PHPのHTTPクライアント用ライブラリ「Guzzle」の利用方法
以前に「Requests for PHP」を試したが、似たようなライブラリで「G ...
-
-
JavaScriptにてカラーコードのピッカーを実装できる「jscolor」の利用方法
フォームのテキストボックスにカラーコードのピッカーを実装したかった。HTMLのみ ...
-
-
サイトをダークモード対応させる「Darkmode.js」ライブラリの利用方法
サイトをダークモード対応させる場合、CSSで色々指定しないといけないと思っていた ...
-
-
jQueryの通知メッセージ用ライブラリ「Toastr」の利用方法
あるサイトのソースコードを拝見しているとToastrというJSファイルをCDNで ...