PHP | HTMLからtitleやog:imageなどを取得する方法
PHPを使って、file_get_contents()
などで取得したHTMLコードからリンクカード用などにページタイトルや「og:image」を取得したいケースは少なくありません。
このページではHTMLから「title」や「og:image」などのメタ情報の中身を取得する方法を紹介しています。
titleからページタイトルを取得する方法
サンプルではこのブログの適当な記事ページURLから、ページタイトルを取得しています。
- file_get_contents()でHTMLデータを取得
- mb_convert_encoding()は文字化け回避用
- preg_match()の正規表現で<title></title>間のHTML・文字列を取得
- 配列として取得しているので[1]のデータを取得、表示
$url = 'https://1-notes.com/phaser3-create-tile-map-with-tiled/';
$html = mb_convert_encoding(file_get_contents($url), "utf-8", "auto");
preg_match('/<title>(.*?)</title>/', $html, $result);
$title = $result[1];
echo $title;
// Phaser 3 | タイルマップ作成と衝突処理 | ONE NOTES
og:imageを取得する方法
サンプルではこのブログの適当な記事ページURLから、「og:image」を取得しています。
- file_get_contents()でHTMLデータを取得
- mb_convert_encoding()は文字化け回避用
- preg_match()の正規表現でog:image内の画像URLを取得
- 配列として取得しているので[1]のデータを取得、表示
$url = 'https://1-notes.com/phaser3-create-tile-map-with-tiled/';
$html = mb_convert_encoding(file_get_contents($url), "utf-8", "auto");
preg_match('/<meta property="og:image" content="(.*?)"/', $html, $result);
$og_image = $result[1];
echo $og_image;
// https://1-notes.com/wp-content/uploads/2020/07/タイルマップ作成と衝突処理.png
titleとog:imageを両方取得
ページタイトルと「og:image」を両方取得する時用のサンプルコードです。
外部リンク生成の場合、「og:image」は設定していないWEBサイトも多い為、注意が必要です。
$url = 'https://1-notes.com/phaser3-create-tile-map-with-tiled/';
$html = mb_convert_encoding(file_get_contents($url), "utf-8", "auto");
preg_match('/<title>(.*?)</title>/', $html, $result);
$title = $result[1];
preg_match('/<meta property="og:image" content="(.*?)"/', $html, $result);
$og_image = $result[1];
ディスカッション
コメント一覧
まだ、コメントがありません