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を使っていきたいところ。
関連記事
-
-
phpdotenvライブラリを使用してPHPで.envファイルを読み込ませる方法
CodeIgniterを勉強していた際に各種設定は「.env」というファイルに記 ...
-
-
PHPでGoogle翻訳を手軽に扱えるライブラリ「google-translate-php」の利用方法
サイト内で一部テキストのGoogle翻訳を行いたい。ただ、Google Clou ...
-
-
PHPで「ramsey/uuid」ライブラリを用いてUUIDを生成する方法
PHPでUUID(Universally Unique Identifier)を ...
-
-
PHPで「php-qrcode-detector-decoder」ライブラリを使用してQRコードをデコードする方法
PHPでQRコードの画像をデコードし、値を変数等に格納したい。何とかならないか調 ...
-
-
PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...